私が見る最も簡単な解決策は次のとおりです。
1-デバイスの画面サイズや解像度によって変わる可能性があるため、imageViewのサイズを取得します。
int IVwidth = imageView.getWidth();
int IVHeight = imageView.getHeight();
2- ビットマップの幅/高さを取得し、ビットマップの幅と imageView の幅の間の数学的関係 (比率) を見つけます。
float HeightRatio = (float)bm.getHeight() / (float)iv.getHeight();
float WidthRatio = (float)bm.getWidth() / (float)iv.getWidth();
(800*600) サイズのビットマップと (400*300) サイズの imageView があるとします。これにより、高さと幅の比率が (2.0) になります。
3- イベント ImageViewTouched が発生すると、イベントがタッチ座標を提供するため、タッチ座標を非常に簡単に取得できます。タッチ イベントのキャッチは非常に簡単で、これをビューに追加するだけで簡単に実装できることに注意してください。
ImageView iv = (ImageView) findViewById(R.id.imageView1);
iv.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {
if(arg1.getAction() == MotionEvent.ACTION_UP)
{
int x = arg1.getX();
int y = arg1.getY();
int XonImage = x * WidthRatio;
int YonImage = Y * HeightRatio;
if(bm.getPixel(XonImage, YonImage) == Color.RED)
{
// BINGOOOOOOO, do your magic here
}
}
return false;
}
});
これ以上の情報については、ためらうことなく尋ねてください。乾杯