packagecom.view;importandroid.content.Context;importandroid.graphics.Bitmap;importandroid.graphics.Canvas;importandroid.graphics.Color;importandroid.graphics.Paint;importandroid.graphics.PorterDuff;importandroid.util.AttributeSet;importandroid.view.MotionEvent;importandroid.view.View;importandroid.widget.LinearLayout;/*** Created by jiang on 2017/12/25.*/
public class MDrawLineView extendsView {publicMDrawLineView(Context context){super(context);
}publicMDrawLineView(Context context,AttributeSet attrs){super(context, attrs);
paint=new Paint(Paint.DITHER_FLAG);//创建一个画笔
if(bitmap==null){
bitmap= Bitmap.createBitmap(900, 1200, Bitmap.Config.ARGB_8888); //设置位图的宽高
}
canvas=newCanvas();
canvas.setBitmap(bitmap);
paint.setStyle(Paint.Style.STROKE);//设置非填充
paint.setStrokeWidth(5);//笔宽5像素
paint.setColor(Color.RED);//设置为红笔
paint.setAntiAlias(true);//锯齿不显示
}
@Overrideprotected voidonDraw(Canvas canvas) {super.onDraw(canvas);if(bitmap==null){
bitmap= Bitmap.createBitmap(900, 1200, Bitmap.Config.ARGB_8888); //设置位图的宽高
}
canvas.drawBitmap(bitmap,0,0,null);
}public voidclear(){
canvas.drawColor(Color.TRANSPARENT, PorterDuff.Mode.CLEAR);
}
@Overridepublic booleanonTouchEvent(MotionEvent event) {switch(event.getAction()){case MotionEvent.ACTION_MOVE: //用户手指在屏幕上移动画线
canvas.drawLine(mov_x,mov_y,event.getX(),event.getY(),paint);
invalidate();break;case MotionEvent.ACTION_DOWN://用户手指按下时画起点
mov_x=(int) event.getX();
mov_y=(int) event.getY();
canvas.drawPoint(mov_x,mov_y,paint);
invalidate();break;caseMotionEvent.ACTION_UP:break;
}
mov_x=(int) event.getX();
mov_y=(int) event.getY();return true;//return super.onTouchEvent(event);
}private int mov_x;//声明起点x坐标
private int mov_y;//声明起点y坐标
private Paint paint;//声明画笔
private Canvas canvas;//画布
private Bitmap bitmap;//位图
private intblcolor;
}