我现在有一个需求,就是在点击的时候需要获取当前位置的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);
Android坐标OnTouchListenerMotionEvent

解决方案 »

  1.   

    一个变通的办法,注册onTouch接口,记住x、y值,然后等有onClick的时候就用这对值……
    囧rz
      

  2.   

    onTouch事件会有一个什么问题呢?太灵敏,我左右滑动的时候也会促发这个事件,我不希望这样。我就希望点击的时候获取坐标执行相应的动作。
      

  3.   

    说一下解决方法吧,用手势。
    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) ;
    }
    };