Android之Canvas撕衣服
前几篇都涉及到了Canvas,Paint,Bitmap的结合使用,这里就不多说了~
现在我要写的是撕衣服的这个项目~
其实这个项目只是涉及到了一张图片到另一张图片的变换
先看效果图:
布局文件也是俩张图片,一张穿了衣服的图片在没穿衣服的图片上面~
布局代码:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/after"android:layout_centerInParent="true"/><ImageViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:src="@drawable/pre" android:id="@+id/iv"/></RelativeLayout>
MainActivity:
public class MainActivity extends Activity {private ImageView iv;private Bitmap baseBitmap,copyBitmap;private Canvas canvas;private Paint paint;private Matrix matrix;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);iv=(ImageView) findViewById(R.id.iv);baseBitmap=BitmapFactory.decodeResource(getResources(), R.drawable.pre);copyBitmap=Bitmap.createBitmap(baseBitmap.getWidth(), baseBitmap.getHeight(), baseBitmap.getConfig());canvas=new Canvas(copyBitmap);matrix=new Matrix();paint=new Paint();canvas.drawBitmap(baseBitmap, matrix, paint);iv.setImageBitmap(copyBitmap);//imageView所在区域被触摸的时候回调iv.setOnTouchListener(new OnTouchListener() {@Overridepublic boolean onTouch(View v, MotionEvent event) {// TODO Auto-generated method stubswitch (event.getAction()) {case MotionEvent.ACTION_DOWN://按下 1次break;case MotionEvent.ACTION_MOVE://移动 0-N次//getX和getY是以控件左上角为原点的//getRawX和getRawY是以屏幕左上角为原点的int moveX=(int)event.getX();int moveY=(int)event.getY();
// event.getRawX();
// event.getRawY();//针对单个像素点去说的try {for(int i=-20;i<21;i++){for(int j=-20;j<21;j++){copyBitmap.setPixel(moveX+i, moveY+j, Color.TRANSPARENT);}}//TRANSPARENT是透明//copyBitmap.setPixel(moveX, moveY, Color.TRANSPARENT);iv.setImageBitmap(copyBitmap);} catch (Exception e) {// TODO: handle exception}break;case MotionEvent.ACTION_UP://抬起 1次break;default:break;}return true;//方法被消费}});}}
源码下载
Android之Canvas撕衣服相关推荐
- Android 仿美女撕衣服效果
因为我写demo的时候不是用一整屏幕来放置当前图片View的,且资源图也不小,所以用到了bitmap缩放 主要思想是:改变touch点的Bitmap色值为透明,并生成新的Bitmap进行显示 pack ...
- android撕衣服案例解析
市场上撕衣服案例的解析,两张图片,设置屏幕触摸事件,触摸的时候把范围内的元素设为透明. 效果掩饰 项目结构 代码 MainActivity package com.example.www.ripclo ...
- Android撕衣服小案例
撕衣服原理是两张图片压在一起,触摸上面的图片使碰到的像素变为透明,就可以看到下面的图片了. package com.example.dressdemo;import android.support.v ...
- android 撕衣服,Android初体验之撕衣服项目
一.准备工作 start 一个新的安卓工程 --->选择Empty Activity----->给工程起一个名字叫tearcloth ------->选择Java语言-------- ...
- Android 撕衣服(刮刮乐游戏)
项目简单介绍: 该项目为撕衣服,相似刮刮乐游戏 具体介绍: 用户启动项目后.载入一张图片,当用户点击图片的时候,点击的一片区域就会消失.从而显示出在这张图片以下的图片 这个小游戏相似与刮奖一样,刮开涂 ...
- Android进阶学习--十几行代码实现美女撕衣服效果
效果图: 在这篇文章文章里有介绍过PorterDuffXfermode这个类,下面来用这个知识点来实现一下那种撕衣服的特效,先给两张图片: 上面叫做bg.jpg,下面叫做fg.jpg 然后就直 ...
- Android(java)学习笔记182:多媒体之撕衣服的案例
1.撕衣服的案例逻辑: 是两者图片重叠在一起,上面我们看到的是美女穿衣服的图片,下面重叠(看不到的)是美女没有穿衣服的图片.当我们用手滑动画面,上面美女穿衣服的图片就会变成透明,这样的话下 ...
- android graphic:canvas
canvas中包含了作图的方法. 完成作图过程,最基本的四大组件是,canvas, bitmap, drawing prmitive, paint. 其中canvas是画布,包含了作图的方法.作图方法 ...
- 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写...
1 加载图片到内存 (1).数码相机照片特别是大于3m以上的,内存吃不消,会报OutOfMemoryError,若是想只显示原图片的1/8,可以通过BitmapFactory.Options来实现,具 ...
- Android中Canvas绘图之Shader使用图文详解
概述 我们在用Android中的Canvas绘制各种图形时,可以通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形.那么Shader是什 ...
最新文章
- 一文看透汽车芯片!巨头布局技术路线全解密【附下载】| 智东西内参
- 【直播】今晚(7月1日)京东直播,如何学会深度学习模型设计和优化
- GitHub 基本常用知识解答2
- 简便满分解法:1005 继续(3n+1)猜想 (25分)
- 《Python游戏编程入门》——1.2 初识Python
- em算法示例_带有示例HTML'em'标签
- 服务器显卡驱动修复,AMD发布2020年首个显卡驱动:一口气修复27个Bug
- 【Python】模糊匹配搜索
- HTTP和HTTPS及 Fiddler抓包原理
- android实现地图功能实现,Android百度地图应用之基本地图功能实现
- 后缀为axd 的文件
- IP-guard加密软件的攻防之路
- opencv-python中 boundingRect(cnt)以及cv2.rectangle用法
- Vue的patch算法(了解)
- TikTok不可思议的崛起
- 重庆宇创--扁平化应急指挥云平台解决方案
- stlink/Jlink在线调试仿真
- 用歌词来记录此时的心情
- 分享CC1310射频芯片的433M无线模块设计
- 使用OpenCV+Python进行图像处理的初学者指南