码迷,mamicode.com
首页 > 移动开发 > 详细

Android 多媒体开发学习之撕衣服

时间:2015-07-30 23:23:50      阅读:198      评论:0      收藏:0      [点我收藏+]

标签:android 撕衣服

今天我们学习撕衣服。我先说一下撕衣服的原理: 撕衣服有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);	
					}
				}
			}
		}
	}
}

效果图:

技术分享


版权声明:本文为博主原创文章,未经博主允许不得转载。

Android 多媒体开发学习之撕衣服

标签:android 撕衣服

原文地址:http://blog.csdn.net/longwang155069/article/details/47157555

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!