在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中怎样实现点击屏幕获得坐标后并定位标注的主要内容,如果未能解决你的问题,请参考以下文章