8
모든 단일보기에 수동으로 할당하지 않고 활동의 모든보기 (보기 그룹)에 GestureDetector를 추가하고 싶습니다. 지금은 onFling()이 배경 위로 스 와이프 할 때만 활성화되지만 예를 들어 스 와이프 할 때 활성화되지 않습니다. button1. 당신은 GestureOverlayView 사용할 수 있습니다모든 하위보기에 GestureDetector 설정
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;
}
}
GestureOverlayView 팁 주셔서 감사합니다. 그것을 사용하는 방법을 얻는 데는 시간이 걸렸습니다. -> http://www.vogella.com/articles/AndroidGestures/article.html – Paradiesstaub
다행입니다. – Angelo
나는 이것을 사용하는 방법을 알고 싶습니다. GestureOverlayView. – halxinate