8
Bir etkinliğin tüm görünümlerine (görünüm gruplarına) her bir görünüme manuel olarak atamadan bir GestureDetector eklemek istiyorum. Şu anda onFling(), sadece arka plan üzerinde hızlıca kaydırma yaparken etkinleştirilir, ancak örn. Buton 1. Bir GestureOverlayView kullanabilirsinizTüm çocuk görünümlerine GestureDetector öğesini ayarlayın
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 ipucu için teşekkürler. Bunu kullanmak için bana bir süre aldı -> http://www.vogella.com/articles/AndroidGestures/article.html – Paradiesstaub
Ben yardımcı olabilir sevindim :) – Angelo
Bunu kullanmadan nasıl yapacağımı bilmek istiyorum GestureOverlayView. – halxinate