我看官方檔案是這么寫的。 如果我想監聽某個view。應該怎么修改呢 ?
public class MainActivity extends Activity {
private GestureDetectorCompat mDetector;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mDetector = new GestureDetectorCompat(this, new MyGestureListener());
}
@Override
public boolean onTouchEvent(MotionEvent event){
// 比如這里, 我想監聽 textView1 , 應該怎么寫
this.mDetector.onTouchEvent(event);
return super.onTouchEvent(event);
}
class MyGestureListener extends GestureDetector.SimpleOnGestureListener {
private static final String DEBUG_TAG = "Gestures";
@Override
public boolean onDown(MotionEvent event) {
Log.d(DEBUG_TAG,"onDown: " + event.toString());
return true;
}
@Override
public boolean onFling(MotionEvent event1, MotionEvent event2,
float velocityX, float velocityY) {
Log.d(DEBUG_TAG, "onFling: " + event1.toString() + event2.toString());
return true;
}
}
}
uj5u.com熱心網友回復:
給要監聽的view注冊這個onTouchEvent事件,一般會有類似setOnTouch...Listener,代碼寫到重寫的匿名介面實作的介面中.uj5u.com熱心網友回復:
GestureDetectorCompat是監聽的你的手指在當前螢屏中的點擊或者滑動事件,那么你為什么要監聽 textView1 ?uj5u.com熱心網友回復:
因為我想這些gesture 只作用在某個View 里, 如果超出這個textView1, 就不觸發。。
uj5u.com熱心網友回復:
那就先獲取到 textView1 的區域,比如 textView1 的左上角在(0, 0)、右上角在(100, 0)、右下角在(100, 100)、左下角在(0, 100),然后再在 MyGestureListener 里面判斷手指目前接觸的螢屏的坐標在不在這個區域內
uj5u.com熱心網友回復:
GestureDetectorCompat是監聽的你的手指在當前螢屏中的點擊或者滑動事件,那么你為什么要監聽 textView1 ?
因為我想這些gesture 只作用在某個View 里, 如果超出這個textView1, 就不觸發。。
那就先獲取到 textView1 的區域,比如 textView1 的左上角在(0, 0)、右上角在(100, 0)、右下角在(100, 100)、左下角在(0, 100),然后再在 MyGestureListener 里面判斷手指目前接觸的螢屏的坐標在不在這個區域內
嘩, 這個那么麻煩的啊,那還不如用setOnTouchListener ...
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/252304.html
標籤:Android
上一篇:網頁出現F1到F12的虛擬鍵盤?
