Android 安卓线描

Android 安卓线描,android,Android,我想在屏幕上画线,但我的应用程序只画虚线。那么我应该在代码中添加什么呢 List<Point> points = new ArrayList<Point>(); Paint paint = new Paint(); public DrawView(Context context) { super(context); setFocusable(true); setFocusableInTouchMode(true); this.setOn

我想在屏幕上画线,但我的应用程序只画虚线。那么我应该在代码中添加什么呢

List<Point> points = new ArrayList<Point>();
Paint paint = new Paint();

public DrawView(Context context) {
    super(context);
    setFocusable(true);
    setFocusableInTouchMode(true);

    this.setOnTouchListener(this);

    paint.setColor(Color.BLUE);
    paint.setAntiAlias(true);
}

@Override
public void onDraw(Canvas canvas) {
    for (Point point : points) {
        canvas.drawCircle(point.x, point.y, 5, paint);
        // Log.d(TAG, "Painting: "+point);
    }
}

public boolean onTouch(View view, MotionEvent event) {
    // if(event.getAction() != MotionEvent.ACTION_DOWN)
    // return super.onTouchEvent(event);
    Point point = new Point();
    point.x = event.getX();
    point.y = event.getY();
    points.add(point);
    invalidate();
    Log.d(TAG, "point: " + point);
    return true;
    }
}

class Point 
{
    float x, y;
    @Override
    public String toString() {
        return x + ", " + y;
    }
}
List points=new ArrayList();
油漆=新油漆();
公共绘图视图(上下文){
超级(上下文);
设置聚焦(真);
setFocusableInTouchMode(真);
this.setOnTouchListener(this);
油漆。设置颜色(颜色。蓝色);
paint.setAntiAlias(真);
}
@凌驾
公共空白onDraw(画布){
用于(点:点){
画布.画圈(点x,点y,5,绘画);
//日志d(标签“涂漆:+点);
}
}
公共布尔onTouch(视图、运动事件){
//if(event.getAction()!=MotionEvent.ACTION\u向下)
//返回super.onTouchEvent(事件);
点=新点();
point.x=event.getX();
point.y=event.getY();
点。添加(点);
使无效();
日志d(标签,“点:”+点);
返回true;
}
}
类点
{
浮动x,y;
@凌驾
公共字符串toString(){
返回x+“,”+y;
}
}
编辑

使用drawLine或drawPath代替drawCircle

我建议您看看

  • 在两组点之间使用抽绳
  • 要获得更平滑的线条,请获取onTouch中的所有历史事件并首先处理它们
  • 为了更快/更平滑,请仅使点发生更改的矩形无效

  • 阅读更多内容

    检查这个:它可以帮助你。其中一个答案对你有用吗?这不应该是答案,而是评论。