ImageView 绘制
我们来实现一个功能,就是在ImageView上面绘制涂鸦
我们给iv设置一个点击事件
iv.setOnTouchListener(new OnTouchListener(){
});
里面是onTouch方法
public boolean onTouch(View view,MotionEvent event){
}
我们来区分event动作
switch(event.getAction()):
case MotionEvent.ACTION_DOWN:
break;
case MotionEvent.ACTION_MOVE:
break;
case MotionEvent.ACTION_UP:
break;
default:
break
我们要在ACTION_DOWN中获取ImageView的相对坐标
case MotionEvent.ACTION_DOWN:
float startX=event.getX();
float startY=event.getY();
还要创建Bipmap对象 就是一张纸
if(bitmap==null){
注意生成成员变量
bitmap=Bitmap.createBitmap(iv.getWidth,iv.getHeight(),Config.ARGB_8888);
还要创建画板
canvas=new Canvas(bitmap);
paint=new Paint();
都生成成员变量
paint.setColor(Color.RED);
paint.setStrokeWidth(5);
break;
然后在ACTION_MOVE中拿到实时的坐标(当前坐标
float currentX=event.getX();
float currentY=event.getY();
画一条直线
canvas.drawLine(startX,startY,currentX,currentY,paint);
让新的起点等于上个终点
startX=currentX;
startY=currentY;
然后设置一下iv
iv.setImageView(bitmap);
return 一下true;