我已经创建了ontouchlistener,但是当我运行代码时,我无法看到我的日志。触摸事件没有运行。请帮助。这是我的代码:

时间:2015-02-24 07:11:47

标签: android

我创建了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;
}
}

提前致谢。

4 个答案:

答案 0 :(得分:1)

如果你想在ImageView上写触摸事件

img.setOnTouchListener(this);

<强>更新

View v=getLayoutInflater().inflate(R.layout.activity_home, null);
v.setOnTouchListener(this);

希望这会对你有所帮助。

答案 1 :(得分:0)

听众交织是之间的桥梁 ',istener(表示你的代码)和事件源(ImageView或按钮或你想要的任何东西)。

如果您想要发生某些事件,您应该创建该桥接器。你的对象将触发事件,但你必须通过向它添加一个监听器告诉对象你关心它

enter image description here

在实现该对象的接口之后。该对象将创建一个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);