Android中如何在点击事件中获得手指所在的X,Y坐标?

xieyunchao 2013-07-15 04:52:19
我现在有一个需求,就是在点击的时候需要获取当前位置的X,Y坐标,我在网上查了一下,都是在OnTouchListener中做的,但我想在onclick事件中达到相同的效果,不知道怎么处理?

OnTouchListener listener = new OnTouchListener() {
@Override
public boolean onTouch(View arg0, MotionEvent arg1) {

/**
* Projection 用于将屏幕坐标转换为地理位置坐标
*/
int x = (int) arg1.getX();
int y = (int) arg1.getY();
currentPt = mMapView.getProjection().fromPixels(x, y);
updateMapState(arg1);

/**
* 传递点击事件给MapView,sdk会自己处理缩放,平移等手势操作
*/
return false;
}
};

mMapView.setOnTouchListener(listener);
...全文
16486 4 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
xieyunchao 2013-07-16
  • 打赏
  • 举报
回复
说一下解决方法吧,用手势。


private class GISGestureListener extends SimpleOnGestureListener {

		   private Context mContext; 

		   GISGestureListener(Context context) { 
		        mContext = context; 
		    } 

		    /**
		     * 用户(轻触触摸屏后)松开,由一个1个MotionEvent ACTION_UP触发
		     */
		    @Override 
		    public boolean onSingleTapUp(MotionEvent e) { 

		        Toast.makeText(mContext, "SHOW " +  e.getX()+"     "+e.getY(), Toast.LENGTH_SHORT).show(); ;

		        int x = (int) e.getX();
				int y = (int) e.getY();
				currentPt = mMapView.getProjection().fromPixels(x, y);
		        pop.hidePop();
				popupText.setBackgroundResource(R.drawable.popup);
				popupText.setText("点击选择该点为资源坐标");
				pop.showPopup(BMapUtil.getBitmapFromView(popupText), currentPt, 8);
		        return false; 

		    } 
	  
	}

。。。。
mGestureDetector = new GestureDetector(this, new GISGestureListener(this));



OnTouchListener listener = new OnTouchListener() {
			@Override
			public boolean onTouch(View arg0, MotionEvent arg1) {

				/**
				 * Projection 用于将屏幕坐标转换为地理位置坐标
				 */
				
				//updateMapState(arg1);

				/**
				 * 传递点击事件给MapView,sdk会自己处理缩放,平移等手势操作
				 */
				return mGestureDetector.onTouchEvent(arg1) ;
			}
		};

xieyunchao 2013-07-15
  • 打赏
  • 举报
回复
引用 1 楼 youngc527 的回复:
一个变通的办法,注册onTouch接口,记住x、y值,然后等有onClick的时候就用这对值…… 囧rz
我也这么想过,稍微复杂些,是不是有更好的方法?
xieyunchao 2013-07-15
  • 打赏
  • 举报
回复
onTouch事件会有一个什么问题呢?太灵敏,我左右滑动的时候也会促发这个事件,我不希望这样。我就希望点击的时候获取坐标执行相应的动作。
Darcy杨 2013-07-15
  • 打赏
  • 举报
回复
一个变通的办法,注册onTouch接口,记住x、y值,然后等有onClick的时候就用这对值…… 囧rz

80,471

社区成员

发帖
与我相关
我的任务
社区描述
移动平台 Android
androidandroid-studioandroidx 技术论坛(原bbs)
社区管理员
  • Android
  • yechaoa
  • 失落夏天
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧