Android自定义画线(模拟指针)
今天和大家分享一下自定义画线功能,效果其实和安卓里开发者模式下的“指针位置”功能类似的,大概就是一个空白的界面,随着手指移动不断画线,话不多说,码上~
创建空白的Activity、画笔画布
display = ScreenUtils.getDisplay(this);
//创建bitmap,宽 高,图片的参数
bitmap = Bitmap.createBitmap(display.getWidth(), display.getHeight() + 50, Bitmap.Config.ARGB_8888);
//创建画笔和画板
paint = new Paint();
paint.setColor(Color.GREEN);
canvas = new Canvas(bitmap);
//在bitmap上作画
canvas.drawBitmap(bitmap, new Matrix(), paint);
监听屏幕事件
这里我们实现两个效果,第一个是只画一条线,第二个是可以多点画线
//方法一:单点画线
public boolean onTouchEvent(MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
x = event.getX();
y = event.getY();
break;
case MotionEvent.ACTION_MOVE:
move_x = event.getX();
down_Y = event.getY();
canvas.drawLine(x, y, move_x, down_Y, paint);
x = move_x;
y = down_Y;
imageView.setImageBitmap(bitmap);
break;
case MotionEvent.ACTION_UP:
break;
}
return true;
}
上面就是单点画线的核心代码,记录按下的坐标,开始画线,然后在记录移动后的坐标并通过imageView显示即可,ACTION_MOVE是不断触发的。
多点画线
重点依然是onTouchEvent,和单点不一样的是,想要实现多点画线,我们需要监听ACTION_POINTER_DOWN和ACTION_MASK事件,下面贴上完整代码
package com.app.activity.set