我创建了ontouchlistener,但是当我运行代码时,我看不到我的日志。触摸事件没有运行。请帮助。这是我的代码:
public class HomeActivity extends Activity implements View.OnTouchListener {
private ImageView img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
img=(ImageView) findViewById(R.id.img);
}
@Override
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
Log.d("test","test");
final int X = (int) event.getRawX();
final int Y = (int) event.getRawY();
switch (event.getAction() & MotionEvent.ACTION_MASK) {
case MotionEvent.ACTION_DOWN:
Log.d("move down","move down"+X);
break;
case MotionEvent.ACTION_UP:
break;
case MotionEvent.ACTION_POINTER_DOWN:
break;
case MotionEvent.ACTION_POINTER_UP:
break;
case MotionEvent.ACTION_MOVE:
Log.d("move x","move x"+X);
Log.d("move y","move y"+Y);
break;
}
return true;
}
}
提前致谢。
答案 0 :(得分:1)
如果你想在ImageView上写触摸事件
img.setOnTouchListener(this);
<强>更新强>
View v=getLayoutInflater().inflate(R.layout.activity_home, null);
v.setOnTouchListener(this);
希望这会对你有所帮助。
答案 1 :(得分:0)
听众交织是之间的桥梁 ',istener(表示你的代码)和事件源(ImageView或按钮或你想要的任何东西)。
如果您想要发生某些事件,您应该创建该桥接器。你的对象将触发事件,但你必须通过向它添加一个监听器告诉对象你关心它
在实现该对象的接口之后。该对象将创建一个Event对象,该对象将触发您已实现的回调
答案 2 :(得分:0)
您将不得不在xml中使用任何布局。您在xml中使用唯一ID进行布局
然后在您的班级
YourLayout layout=(YourLayout) findViewById(R.id.yourlayoutid);
layout.setOnTouchListener(this)
答案 3 :(得分:0)
SimpleOnGestureListener simpleOnGestureListener = new SimpleOnGestureListener() {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX,
float velocityY) {
float sensitvity = 200;
// TODO Auto-generated method stub
if ((e1.getX() - e2.getX()) > sensitvity) {
// Code for left swipe here
}
// **************** NOTHING ******************
else if ((e2.getX() - e1.getX()) > sensitvity) {
// Code for right swipe here
}
return super.onFling(e1, e2, velocityX, velocityY);
}
};
@SuppressWarnings("deprecation")
GestureDetector gestureDetector = new GestureDetector(
simpleOnGestureListener);