android - ImageView: onDraw方法绘制 "behind"图片背景,不在顶部

标签 android imageview ondraw

下面是 ImageView 的简单扩展代码,允许用户用手指绘图。

public class MyImageView extends ImageView {

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

    public MyImageView(Context context, AttributeSet attrs) {
        super(context, attrs);
    }

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

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        super.onTouchEvent(event);
        Point point = new Point();
        point.x = event.getX();
        point.y = event.getY();
        points.add(point);
        invalidate();
        Log.d("", "point: " + point);
        return true;
    }

    class Point {
        float x, y;
        @Override
        public String toString() {
            return x + ", " + y;
        }
    }
}

这个工作很好。

现在,我想使用这段代码在位图的顶部绘制。

我用过:

MyImageView ivPic = (MyImageView) dialog.findViewById(R.id.ivPic);
ivPic.setImageBitmap(picture);

但是绘图是在位图“后面”绘制的:

enter image description here

你知道我如何在位图的“顶部”绘制吗?

最佳答案

我改变了 onDraw 方法中的顺序,我把 super.onDraw(canvas); 放在开头,我认为它现在可以工作了

关于android - ImageView: onDraw方法绘制 "behind"图片背景,不在顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11176362/

相关文章:

android - SharedPreferences XML 文件会增加它的大小吗?

android - 如何在线程中重新加载 imageview?

安卓应用 : text getting cropped on smaller devices

android - 获取 ImageView 的背景颜色

android - 基于 X 轴裁剪图像以适合 ImageView

Android:滚动搜索栏时更改图像对比度和亮度

Canvas 中两点之间的Android Path addArc

android - 无法在 Android Studio 中打开 DDMS。神秘的 Eclipse 错误弹出

java - Android 调用 onDraw 时没有绘制任何内容?

android - 我如何根据笔划帽计算从哪里开始我的线?