在 Imageview onClick() 中获取图像的 x、y,比例类型为 fitCenter
Get x,y of image in Imageview onClick() with scale type fitCenter
我有一个 ImageView,通过使用图像分辨率,我在该图像
上放置了 canvas 个对象
当我触摸 ImageView 时,它应该 return 图像的 x,y 而不是 Imageview。
我不想使用 FitXY 秤类型
目前我正在获取 Imageview 的 x,y
iv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
float x = (event.getX())/2; // or getRawX();
float y = (event.getY())/2;
System.out.println("drawn bounds:cx: "+x+"cy: "+y);
return false;
}
});
请帮我获取图像的 x,y 而不是 Imageview。
试试这个以获得图像的 XY
float bitmapWidth = bitmap.getWidth();
float bitmapHeight = bitmap.getHeight();
float imageWidth = iv.getWidth();
float imageHeight = iv.getHeight();
float proportionateWidth = bitmapWidth / imageWidth;
float proportionateHeight = bitmapHeight / imageHeight;
int tapX = (int) (event.getX() * proportionateWidth);
int tapY = (int) (event.getY() * proportionateHeight);
希望对您有所帮助!
我有一个 ImageView,通过使用图像分辨率,我在该图像
上放置了 canvas 个对象当我触摸 ImageView 时,它应该 return 图像的 x,y 而不是 Imageview。 我不想使用 FitXY 秤类型
目前我正在获取 Imageview 的 x,y
iv.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
float x = (event.getX())/2; // or getRawX();
float y = (event.getY())/2;
System.out.println("drawn bounds:cx: "+x+"cy: "+y);
return false;
}
});
请帮我获取图像的 x,y 而不是 Imageview。
试试这个以获得图像的 XY
float bitmapWidth = bitmap.getWidth();
float bitmapHeight = bitmap.getHeight();
float imageWidth = iv.getWidth();
float imageHeight = iv.getHeight();
float proportionateWidth = bitmapWidth / imageWidth;
float proportionateHeight = bitmapHeight / imageHeight;
int tapX = (int) (event.getX() * proportionateWidth);
int tapY = (int) (event.getY() * proportionateHeight);
希望对您有所帮助!