2

はじめまして、

画面ではなくビットマップの座標を取得するにはどうすればよいですか。event.getX()、event.getY() メソッドによってスクリーン座標が取得されますが、ビットマップの座標が取得されません。誰か助けてください。

4

2 に答える 2

2

ビットマップの座標を直接取得することはできません。自分で計算する必要があります。ImageView の位置を使用すると、それを処理できます。

もちろん、Activity onCreate の後で、膨張した (アクティブな) ビュー パラメーターにアクセスできます。例。ImageView a; a.getPaddingBottom(); すべての座標 (左右など) と同様に、この後、ImageView の高さと幅が必要です。いや、ビューの位置、高さ、幅がわかれば計算できます。

例:

final ImageView iv_YourImage = (ImageView) findViewById(R.id.iv_imageview);
public boolean onTouch(View v, MotionEvent event){
int topParam =  iv_YourImage.getPaddingTop();
 int rightParam =  iv_YourImage.getPaddingRight();
int maxTopParam = topParam+iv_YourImage.getMaxHeight();
int maxRightParam = rightParam + iv_YourImage.getMaxWidth();
 if(event.getX>topParam&&event.getX<maxTopParam){
    //the x coordinate is in your image... do the same to Y
 }
return true;
}
于 2012-10-01T14:12:55.613 に答える