一. 运行效果以及源码
1.gif图效果

2.源码地址
撕衣服
二.主要的思路
- 屏幕是由ImageView(穿衣服)和ImageView(没有穿衣服)的两张图叠放在一起的,我们只需要将触摸的点的位置 转化为 穿了衣服的图片 上对应点的位置。将找到的区域的像素设置为透明,将修改后的图片重新设置为ImageView(穿衣服)的src,就达到了我们想要的效果。
- 那么,触摸的点对应的区域由 View 的 OnTouch 事件完成。如何修改图片的某一块像素为透明呢?由于无法对原图(原Bitmap)操作,所以我们选择将BItmap画到一个画布上(内容还是存储在Bitmap里面,Canvas只是一个媒介)。调用 Bitmap 自己的
public void setPixel(int x, int y, @ColorInt int color)
,设置某一点的颜色。(透明色:Color.TRANSPARENT)
- 还有一个需要注意的点,我们的图片设置到屏幕上面之后会被拉伸。所以,我们不可以直接把触摸到的点用于setPixel。我们需要的不是触摸到的点,而是触摸点的横纵坐标相对于显示的宽高的比例,这样我们就可以通过比例setPixel。
版权声明: 本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小石头's Blog!