您的位置:首页 > 移动开发 > Android开发

Android 处理屏幕点击

2015-01-16 14:28 155 查看
1. 重载 onTouchEvent() 回调函数

我们既可以在activity派生类中处理onTouchEvent() 。又可以在 View的派生类中处理 onTouchEvent()(应该是通过子类化view来达到目的,即自己写一个类继承与view的子类,然后实现onTouchEvent())。

官网的代码:

public class MainActivity extends Activity {
...
// This example shows an Activity, but you would use the same approach if
// you were subclassing a View.
@Override
public boolean onTouchEvent(MotionEvent event){

int action = MotionEventCompat.getActionMasked(event);

switch(action) {
//点击屏幕触发
case (MotionEvent.ACTION_DOWN) :
Log.d(DEBUG_TAG,"Action was DOWN");
return true;
//点击屏幕后,手指不离开屏幕,触发
case (MotionEvent.ACTION_MOVE) :
Log.d(DEBUG_TAG,"Action was MOVE");
return true;
//点击屏幕后,手指离开屏幕,触发
case (MotionEvent.ACTION_UP) :
Log.d(DEBUG_TAG,"Action was UP");
return true;
case (MotionEvent.ACTION_CANCEL) :
Log.d(DEBUG_TAG,"Action was CANCEL");
return true;
case (MotionEvent.ACTION_OUTSIDE) :
Log.d(DEBUG_TAG,"Movement occurred outside bounds " +
"of current screen element");
return true;
default :
return super.onTouchEvent(event);
}
}


2.为view对象设置监听触摸器

可以不使用onTouchEvent()为view作为触摸的响应。可以使用View.OnTouchListener来达到目的。

代码如下:

View myView = findViewById(R.id.my_view);

myView.setOnTouchListener(new OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
// ... Respond to touch events
return true;
}
});


注:如果我们在ACTION_DOWN 事件中返回false, 那么后续的ACTION_MOVE 和 ACTION_UP将不会得到调用。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐