前几篇都涉及到了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撕衣服相关推荐

  1. Android 仿美女撕衣服效果

    因为我写demo的时候不是用一整屏幕来放置当前图片View的,且资源图也不小,所以用到了bitmap缩放 主要思想是:改变touch点的Bitmap色值为透明,并生成新的Bitmap进行显示 pack ...

  2. android撕衣服案例解析

    市场上撕衣服案例的解析,两张图片,设置屏幕触摸事件,触摸的时候把范围内的元素设为透明. 效果掩饰 项目结构 代码 MainActivity package com.example.www.ripclo ...

  3. Android撕衣服小案例

    撕衣服原理是两张图片压在一起,触摸上面的图片使碰到的像素变为透明,就可以看到下面的图片了. package com.example.dressdemo;import android.support.v ...

  4. android 撕衣服,Android初体验之撕衣服项目

    一.准备工作 start 一个新的安卓工程 --->选择Empty Activity----->给工程起一个名字叫tearcloth ------->选择Java语言-------- ...

  5. Android 撕衣服(刮刮乐游戏)

    项目简单介绍: 该项目为撕衣服,相似刮刮乐游戏 具体介绍: 用户启动项目后.载入一张图片,当用户点击图片的时候,点击的一片区域就会消失.从而显示出在这张图片以下的图片 这个小游戏相似与刮奖一样,刮开涂 ...

  6. Android进阶学习--十几行代码实现美女撕衣服效果

        效果图: 在这篇文章文章里有介绍过PorterDuffXfermode这个类,下面来用这个知识点来实现一下那种撕衣服的特效,先给两张图片: 上面叫做bg.jpg,下面叫做fg.jpg 然后就直 ...

  7. Android(java)学习笔记182:多媒体之撕衣服的案例

    1.撕衣服的案例逻辑:       是两者图片重叠在一起,上面我们看到的是美女穿衣服的图片,下面重叠(看不到的)是美女没有穿衣服的图片.当我们用手滑动画面,上面美女穿衣服的图片就会变成透明,这样的话下 ...

  8. android graphic:canvas

    canvas中包含了作图的方法. 完成作图过程,最基本的四大组件是,canvas, bitmap, drawing prmitive, paint. 其中canvas是画布,包含了作图的方法.作图方法 ...

  9. 19_Android中图片处理原理篇,关于人脸识别网站,图片加载到内存,图片缩放,图片翻转倒置,网上撕衣服游戏案例编写...

    1 加载图片到内存 (1).数码相机照片特别是大于3m以上的,内存吃不消,会报OutOfMemoryError,若是想只显示原图片的1/8,可以通过BitmapFactory.Options来实现,具 ...

  10. Android中Canvas绘图之Shader使用图文详解

    概述 我们在用Android中的Canvas绘制各种图形时,可以通过Paint.setShader(shader)方法为画笔Paint设置shader,这样就可以绘制出多彩的图形.那么Shader是什 ...

最新文章

  1. 一文看透汽车芯片!巨头布局技术路线全解密【附下载】| 智东西内参
  2. 【直播】今晚(7月1日)京东直播,如何学会深度学习模型设计和优化
  3. GitHub 基本常用知识解答2
  4. 简便满分解法:1005 继续(3n+1)猜想 (25分)
  5. 《Python游戏编程入门》——1.2 初识Python
  6. em算法示例_带有示例HTML'em'标签
  7. 服务器显卡驱动修复,AMD发布2020年首个显卡驱动:一口气修复27个Bug
  8. 【Python】模糊匹配搜索
  9. HTTP和HTTPS及 Fiddler抓包原理
  10. android实现地图功能实现,Android百度地图应用之基本地图功能实现
  11. 后缀为axd 的文件
  12. IP-guard加密软件的攻防之路
  13. opencv-python中 boundingRect(cnt)以及cv2.rectangle用法
  14. Vue的patch算法(了解)
  15. TikTok不可思议的崛起
  16. 重庆宇创--扁平化应急指挥云平台解决方案
  17. stlink/Jlink在线调试仿真
  18. 用歌词来记录此时的心情
  19. 分享CC1310射频芯片的433M无线模块设计
  20. 使用OpenCV+Python进行图像处理的初学者指南

热门文章

  1. 详解Windows Shim的攻防利用
  2. 发字的楷书写法图片_硬笔书法笔顺正确写法,手写示范动态图
  3. NSA永恒之蓝病毒,如何通过360工具修复?
  4. Linux递归统计当前目录下普通文件的数量
  5. PostgreSql和MySql分组统计百分比
  6. [从零学习汇编语言] - 计算机发展历史
  7. Matlab图像分割(U-Net)
  8. BC26 OpenCPU RTC/PSM_EINT API接口
  9. nideshop小程序商城部署
  10. matlab样本标准差,关于样本标准差(SD)与样本标准误差(SE)