fling
Android アプリケーションでジェスチャ検出を機能させたいと考えています。
私が持っているのは、GridLayout
9 ImageView
s を含む です。ソースはRomain Guys の Grid Layoutにあります。
私が取ったそのファイルは、Romain Guy のPhotostream アプリケーションからのもので、わずかに変更されています。
onClickListener
単純なクリックの状況では、追加するfor eachを実装ImageView
するメインに設定するだけです。を認識するものを実装するのは、はるかに複雑に思えます。これは、スパンする可能性があるためだと思いますか?activity
View.OnClickListener
fling
views
アクティビティが実装されている場合、 追加するビューまたはビュー
OnGestureListener
のジェスチャ リスナーとしてそれを設定する方法がわかりません。Grid
Image
public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
私のアクティビティが実装されている場合、 方法
OnTouchListener
はありません (パラメーターとして 2 つのイベントがあり、フリングが注目に値するかどうかを判断できます)。onFling
override
public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
カスタムを作成すると、その
View
ようGestureImageView
に拡張され、ビューから a が発生したImageView
ことをアクティビティに伝える方法がわかりません。fling
いずれにせよ、これを試してみたところ、画面に触れてもメソッドが呼び出されませんでした。
これがビュー全体で機能する具体的な例が本当に必要です。何を、いつ、どのように添付すればよいlistener
ですか?シングルクリックも検出できる必要があります。
// Gesture detection
mGestureDetector = new GestureDetector(this, new GestureDetector.SimpleOnGestureListener() {
public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) {
int dx = (int) (e2.getX() - e1.getX());
// don't accept the fling if it's too short
// as it may conflict with a button push
if (Math.abs(dx) > MAJOR_MOVE && Math.abs(velocityX) > Math.absvelocityY)) {
if (velocityX > 0) {
moveRight();
} else {
moveLeft();
}
return true;
} else {
return false;
}
}
});
フリングをキャプチャするために、画面の上部に透明なビューを配置することはできますか?
inflate
XML から子イメージ ビューを取得しないことを選択した場合GestureDetector
、コンストラクター パラメーターとして、作成した新しいサブクラスに渡すことができImageView
ますか?
fling
これは、検出を機能させようとしている非常に単純なアクティビティです: SelectFilterActivity (Adapted from photostream)。
私はこれらの情報源を見てきました:
これまでのところ何もうまくいかず、いくつかの指針を期待していました.