Android 多媒体开发学习之撕衣服
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android 多媒体开发学习之撕衣服,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1644字,纯文字阅读大概需要3分钟。
内容图文
今天我们学习撕衣服。我先说一下撕衣服的原理: 撕衣服有2张图片,一张是美女穿外衣的图片,一张是美女穿内衣的图片。当我们手指滑动后,然后将美女穿外衣衣服的图片设置为透明色,这样下面的图片就显示出来了。
直接上代码:
public class MainActivity extends Activity { private Bitmap bmpCopy; private Paint paint; private Canvas canvas; private ImageView imageView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //1: 因为我修改外衣的图片,所以要给外衣设置副本 Bitmap bmpSrc = BitmapFactory.decodeResource(getResources(), R.drawable.awaiyi); bmpCopy = Bitmap.createBitmap(bmpSrc.getWidth(), bmpSrc.getHeight(), bmpSrc.getConfig()); paint = new Paint(); canvas = new Canvas(bmpCopy); canvas.drawBitmap(bmpSrc, new Matrix(), paint); imageView = (ImageView) findViewById(R.id.lv2); imageView.setImageBitmap(bmpCopy); //2:监听触摸事件 imageView.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { //我们只关心滑动事件 switch (event.getAction()) { case MotionEvent.ACTION_MOVE: //手指滑动的轨迹设置为透明色 int x = (int) event.getX(); int y = (int) event.getY(); cleanImage(x, y); break; default: break; } return true; } }); } //因为每次只设置1个像素,这样很慢 public void cleanImage(int x, int y) { for(int i = -10; i < 10; i++) { for(int j = -10; j < 10; j++) { //绘制以x,y为圆心半径为10的圆 if(Math.sqrt(i*i + j*j) <= 10) { //判断手指是否越界, 如果越界不处理 if(x+i < bmpCopy.getWidth() && y+j < bmpCopy.getHeight() && x+i >=0 && y+j >=0) { //设置透明色 bmpCopy.setPixel(x+i, y+j, Color.TRANSPARENT); //设置图像 imageView.setImageBitmap(bmpCopy); } } } } } }
效果图:
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/longwang155069/article/details/47157555
内容总结
以上是互联网集市为您收集整理的Android 多媒体开发学习之撕衣服全部内容,希望文章能够帮你解决Android 多媒体开发学习之撕衣服所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。
来源:【匿名】