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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在ImageView中怎样实现点击屏幕获得坐标后并定位标注相关的知识,希望对你有一定的参考价值。

初学者,没有一点思路,现在没有用mapview

参考技术A 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;追问

谢谢你的回答,,我现在想在标注的地方插入图片,,这个怎么弄啊~

本回答被提问者和网友采纳

获得控件的屏幕坐标

原文:获得控件的屏幕坐标

??

?在WPF控件(TreeviewControl)中弹出一个菜单,菜单的位置需要定位到鼠标点击的位置,

开始时使用了MouseButtonEventArgs的GetPosition方法,

private static void Border_MouseLeftButtonDown ( object sender, MouseButtonEventArgs e )

利用鼠标键触发的方法中处理sender和e中的各种 FrameworkElement 获得鼠标相对位置,

再加上控件本身的位置,但总是不能正确弹出菜单的位置,没办法到网上查资料,最后尝试了这一句,没想到这么简单

System.Drawing.Point p = System.Windows.Forms.Control.MousePosition;就直接定位到了鼠标的位置上了,大概的原理是

System.Windows.Forms.Control.MousePosition能够找到活动的窗体的相对坐标吧,不管怎样,调试过了,能在正确位置弹菜单了。



以上是关于在ImageView中怎样实现点击屏幕获得坐标后并定位标注的主要内容,如果未能解决你的问题,请参考以下文章

unity 怎样正确获取2d世界坐标

c#window窗体应用程序中一个控件,如果鼠标点击控件,怎么获得此时鼠标点击处的屏幕坐标

获得控件的屏幕坐标

android怎么获取bitmap左上角坐标?

Qt 如何获取滚动窗体中鼠标点击的坐标

Unity UGUI怎么样获得UI在屏幕上的位置坐标?