Android 如何在setOnLongClickListener中获取x和y值?
运行时我已更改背景图像(设置背景)。在图中,我使用Touch Listener执行了该操作。但就我而言,我需要对触摸事件采取另一项行动。为此,我需要继续进行长距离接触活动。请向我推荐其他想法。回答:Android 如何在setOnLongClickListener中获取x和y值?,android,Android,运行时我已更改背景图像(设置背景)。在图中,我使用Touch Listener执行了该操作。但就我而言,我需要对触摸事件采取另一项行动。为此,我需要继续进行长距离接触活动。请向我推荐其他想法。回答: imageButton.setOnLongClickListener(new OnLongClickListener() { @Override public boolean onLongClick
imageButton.setOnLongClickListener(new OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
// TODO Auto-generated method stub
return false;
}
});
或
您可以使用手势检测器,如下所示:
我相信在这种情况下,
onLongClick
实际上应该返回true
,因为触摸事件应该被使用,所以可以在setonlongclicklister中获取运动事件。@scinofikshvaku如何在imageButton.setonlongclicklister中获取运动事件值?您可以使用ev.getX()
或ev.getX()获取值MotionEvent.ACTION\u MOVE
无法在imageButton.setOnLongClickListener.not in long click使用TouchLIstener中的onTouchEvent
方法。此事件=事件;我必须在这里指定哪些细节。我在相对布局上使用imageView。我必须提供哪些细节来代替MapView.Provider ImageView对象'覆盖公共布尔onTouchEvent(MotionEvent事件,ImageView btn){if(event.getAction()==MotionEvent.ACTION_DOWN){handler.postDelayed(mLongPressed,1000);myevent=event;}if((event.getAction()==MotionEvent.ACTION_MOVE)| |(event.getAction()==MotionEvent.ACTION_UP))处理程序。removeCallbacks(长按);return onTouchEvent(event,btn);}显示@Override中的错误您需要为图像视图设置TouchListener
final Handler handler = new Handler();
Runnable mLongPressed = new Runnable() {
public void run() {
Log.i("", "Long press!");
if(myEvent!=null)
{
int requiredXvalue=myEvent.getX();
int requiredYvalue=myEvent.getY();
}
}
};
MotionEvent myEvent;
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView){
if(event.getAction() == MotionEvent.ACTION_DOWN)
{
handler.postDelayed(mLongPressed, 1000);
myEvent=event;
}
if((event.getAction() == MotionEvent.ACTION_MOVE)||(event.getAction() == MotionEvent.ACTION_UP))
handler.removeCallbacks(mLongPressed);
return super.onTouchEvent(event, mapView);
}
final GestureDetector gestureDetector = new GestureDetector(new GestureDetector.SimpleOnGestureListener() {
public void onLongPress(MotionEvent e) {
Log.e("", "Longpress detected");
int requiredXvalue=e.getX();
int requiredYvalue=e.getY();
}
});
public boolean onTouchEvent(MotionEvent event) {
return gestureDetector.onTouchEvent(event);
};