【发布时间】:2015-12-16 12:59:09
【问题描述】:
我试图在拖动按钮时获取 X、Y 坐标,但由于某种原因,触摸侦听器上附加的代码仅触发两次,而不是在拖动时不断更新,即使有 trothing 我也会感到满意为了提高性能,但正如我所说,onTouch 方法仅在动作停止时触发,然后再触发一次。
这是我的代码:
final Button dragBtn = (Button) findViewById(R.id.MyTestButton);
dragBtn.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent me) {
// TODO Auto-generated method stub
ClipData data = ClipData.newPlainText("", "");
View.DragShadowBuilder shadow = new View.DragShadowBuilder(dragBtn);
v.startDrag(data, shadow, null, 0);
int action = me.getAction();
if (action==MotionEvent.ACTION_DOWN) {
Log.i("TEST", "ACTION_DOWN");
return true;
}
if (action==MotionEvent.ACTION_MOVE){
Log.i("TEST", "ACTION_MOVE");
float x = me.getX();
float y = me.getY();
//TODO: Rest of my code here.
return true;
}
if (action==MotionEvent.ACTION_UP){
Log.i("TEST", "ACTION_UP");
return true;
}
Log.i("TEST", "UKNOWN ACTION");
return true;
}
});
在日志中我刚刚:
ACTION_DOWN
WindowManager﹕ Drag already in progress
UKNOWN ACTION
【问题讨论】:
标签: java android android-activity touch draggable