如何在 Zoom able 和 scroll able imageview android 上绘制圆圈?

How Draw circle on Zoom able and scroll able imageview android?

我正在开发一个应用程序,要求如下。

用双指缩放和平移显示图像。

为此,我使用 here

中的 TouchImageview.java

它正在按预期工作。

在图像上绘制实心圆。

这也有效。

public class NavigationViewZoom extends TouchImageView {
    private Paint mPaint = new Paint(Paint.ANTI_ALIAS_FLAG);

    @Override
    public void setImageBitmap(Bitmap bm) {
        super.setImageBitmap(bm);
    }

    @Override
    protected void onDraw(Canvas canvas) {
        super.onDraw(canvas);
        canvas.drawCircle(300, 120, 50, mPaint);
    }

    public NavigationViewZoom(Context c) {
        super(c);
        init();
    }

    public NavigationViewZoom(Context c, AttributeSet attrs) {
        super(c, attrs);
        setDrawingCacheEnabled(true);
        init();
    }

    private void init() {

        mPaint.setColor(Color.RED);
        mPaint.setStyle(Paint.Style.FILL);

    }
}

问题:

现在的问题是,当在 canvas 上绘制实心圆后缩放 in/out 图像时,圆的位置不受管理。

例如 我在缩放图像后在位置 x=100,y=100 上绘制实心圆,圆应该在相同的位置。那么如何获得缩放图像上的相对x,y位置。

尝试使用这个 library。 在演示应用程序中显示了一个似乎可以满足您要求的功能。

库中的

CircleView class 可能会有用。