1.撕衣服:
public class MainActivity extends Activity {
private ImageView iv;
// 可以修改的位图
private Bitmap alertBitmap;
private Canvas canvas;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
iv = (ImageView) findViewById(R.id.iv);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
R.drawable.pre);
// 创建一个空白的原图的拷贝
alertBitmap = Bitmap.createBitmap(bitmap.getWidth(),
bitmap.getHeight(), bitmap.getConfig());
canvas = new Canvas(alertBitmap);
Paint paint = new Paint();
paint.setColor(Color.BLACK);
canvas.drawBitmap(bitmap, new Matrix(), paint);
iv.setImageBitmap(alertBitmap);
iv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:// 手指按下屏幕
System.out.println("action down");
break;
case MotionEvent.ACTION_MOVE:// 手指在屏幕上移动
int x = (int) event.getX();
int y = (int) event.getY();
System.out.println("设置("+x+","+y+")透明颜色");
for(int i=-4;i<5;i++){
for(int j=-4;j<5;j++){
try{
alertBitmap.setPixel(x+i, y+j, Color.TRANSPARENT);//transparent:透明的
}catch (Exception e) {
// TODO: handle exception
}
}
}
iv.setImageBitmap(alertBitmap);
break;
case MotionEvent.ACTION_UP:// 手指离开屏幕
MediaPlayer.create(getApplicationContext(), R.raw.higirl).start();
break;
}
return true;//可以重复循环的处理事件
}
});
}
}
android(40)(撕衣服,bitmap的使用)
最新推荐文章于 2022-02-03 16:11:45 发布
本文介绍了一种基于Android平台的触摸互动撕衣效果实现方案。通过监听用户的触摸事件,并在对应位置设置像素为透明,逐步展示底层图像,从而达到撕衣的视觉效果。文章详细展示了如何使用Bitmap、Canvas等API进行图像操作。
摘要由CSDN通过智能技术生成