私はアプリケーションを開発しており、要件は以下のとおりです。
ピンチズームとパンで画像を表示します。
このために、ここから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 位置を取得する方法。