1

私はアプリケーションを開発しており、要件は以下のとおりです。

ピンチズームとパンで画像を表示します。

このために、ここから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);

    }
}

問題:

問題は、キャンバスに塗りつぶした円を描いた後に画像を拡大/縮小すると、円の位置が管理されないことです。

たとえば、画像をズームした後、位置 x=100、y=100 に黒丸を描画します。円は同じ位置にあるはずです。ズームされた画像の相対的な x、y 位置を取得する方法。

4

1 に答える 1