在ImageView中怎样实现点击屏幕获得坐标后并定位标注

初学者,没有一点思路,现在没有用mapview
2025-05-10 03:01:05
推荐回答(1个)
回答1:

ImageView imageView = (ImageView)findViewById(R.id.imageview);
imageView.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
//当按下时获取到屏幕中的xy位置
if(event.getAction()==MotionEvent.ACTION_DOWN){
Log.e("point",event.getX() +","+event.getY());

//更多关于坐标转换的参考
Drawable drawable = imageView.getDrawable();
Rect imageBounds = drawable.getBounds();

//初始化bitmap的宽高
int intrinsicHeight = drawable.getIntrinsicHeight();
int intrinsicWidth = drawable.getIntrinsicWidth();

//可见image的宽高
int scaledHeight = imageBounds.height();
int scaledWidth = imageBounds.width();

//使用fitXY
float heightRatio = intrinsicHeight / scaledHeight;
float widthRatio = intrinsicWidth / scaledWidth;

//获取图像边界值
int scaledImageOffsetX = event.getX() - imageBounds.left;
int scaledImageOffsetY = event.getY() - imageBounds.top;

//根据你图像的缩放比例设置
int originalImageOffsetX = scaledImageOffsetX * widthRatio;
int originalImageOffsetY = scaledImageOffsetY * heightRatio;