10_在ImageView中绘制

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;

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(10_在ImageView中绘制)