撕衣服小游戏原理

/*撕衣服原理:
底层放无衣服人物,上层放穿衣服人物
当触摸划过使上层划过像素变透明*/

    public class MainActivity extends Activity {

    private ImageView iv;
    private Bitmap srcBM;
    private Bitmap copyBM;
    private Canvas canvas;
    private Paint paint;
    private Matrix matrix;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        iv = (ImageView) findViewById(R.id.iv);

        srcBM = BitmapFactory.decodeResource(getResources(), R.drawable.pre);
        copyBM = Bitmap.createBitmap(srcBM.getWidth(),srcBM.getHeight(), srcBM.getConfig());

        canvas = new Canvas(copyBM);
        paint = new Paint();
        matrix = new Matrix();
        canvas.drawBitmap(srcBM, matrix, paint);

        iv.setImageBitmap(copyBM);
        iv.setOnTouchListener(new OnTouchListener() {

            @Override
            public boolean onTouch(View v, MotionEvent event) {
                int action = event.getAction();
                switch (action) {
                case MotionEvent.ACTION_MOVE:
                    int x = (int) event.getX();
                    int y = (int) event.getY();
                    for(int i = -15;i < 15;i++){
                        for(int j = -10;j < 10;j++){
                            copyBM.setPixel(x+i, y+j, Color.TRANSPARENT);
                        }
                    }
                    iv.setImageBitmap(copyBM);                  
                    break;
                }
                return true;
            }
        });
    }
}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值