8
Tôi muốn thêm GestureDetector vào tất cả các chế độ xem (xem nhóm) của một hoạt động mà không chỉ định nó theo cách thủ công cho từng chế độ xem. Ngay bây giờ onFling() chỉ được kích hoạt khi vuốt qua nền chứ không phải khi vuốt trên, ví dụ: button1.Đặt GestureDetector cho tất cả các chế độ xem con
package com.app.example;
import android.app.Activity;
import android.content.Context;
import android.graphics.Color;
import android.os.Bundle;
import android.util.Log;
import android.view.GestureDetector;
import android.view.MotionEvent;
import android.view.GestureDetector.SimpleOnGestureListener;
import android.view.View;
import android.view.View.OnTouchListener;
import android.widget.Button;
import android.widget.LinearLayout;
public class ExampleActivity extends Activity {
Context mContext = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mContext = this;
LinearLayout parent = new LinearLayout(mContext);
parent.setOrientation(LinearLayout.VERTICAL);
parent.setBackgroundColor(Color.RED);
Button button1 = new Button(mContext);
button1.setText("Button 1");
Button button2 = new Button(mContext);
button2.setText("Button 2");
parent.addView(button1);
parent.addView(button2);
final GestureDetector gestureDetector = new GestureDetector(
new MyGestureDetector());
parent.setOnTouchListener(new OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
gestureDetector.onTouchEvent(event);
return true;
}
});
setContentView(parent);
}
}
class MyGestureDetector extends SimpleOnGestureListener {
@Override
public boolean onFling(MotionEvent e1, MotionEvent e2,
float velocityX, float velocityY) {
// right to left
if(e1.getX() - e2.getX() > 10 && Math.abs(velocityX) > 20) {
Log.i("onFling", "right to left");
return false;
// left to right
} else if (e2.getX() - e1.getX() > 10 && Math.abs(velocityX) > 20) {
Log.i("onFling", "left to right");
return false;
}
return false;
}
}
Cảm ơn mẹo GestureOverlayView. Phải mất một lúc tôi mới biết cách sử dụng nó -> http://www.vogella.com/articles/AndroidGestures/article.html – Paradiesstaub
Vui vì tôi có thể giúp :) – Angelo
Tôi muốn biết cách làm điều đó mà không cần sử dụng GestureOverlayView. – halxinate