繁体   English   中英

绘制ImageView

[英]Drawing over an ImageView

我正在尝试绘制一张图片,稍后我会用图纸保存。 我的xml只有ImageView,我试图覆盖onDraw。 它只让de Canvas工作,但没有图像。

public class Body1 extends View {

    public LayoutParams params;
    private Path path = new Path();
    private Paint brush = new Paint();


    public Body1(Context context) {
        super(context);

        brush.setAntiAlias(true);
        brush.setColor(Color.MAGENTA);
        brush.setStyle(Paint.Style.STROKE);
        brush.setStrokeJoin(Paint.Join.ROUND);
        brush.setStrokeWidth(8f);

        params = new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT);


    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        float pointX = event.getX();
        float pointY = event.getY();

        switch (event.getAction()) {
            case MotionEvent.ACTION_DOWN:
                path.moveTo(pointX, pointY);
                return true;
            case MotionEvent.ACTION_MOVE:
                path.lineTo(pointX, pointY);
                break;
            default:
                return false;
        }
        postInvalidate();
        return false;
    }

    @Override
    protected void onDraw(Canvas canvas) {
        canvas.drawPath(path, brush);
    }
}

好的,你走在正确的道路上。 您缺少的是无效调用,这将导致操作系统调用视图的OnDraw。

每次要更新视图时调用都会失效。 但请注意,您的类只有一个路径对象,因此只绘制最后一个段。

如果我没有弄错你应该持有Path对象的ArrayList onDraw你应该遍历它们并一个接一个地绘制它们。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM