Saya ingin mendapatkan fling
deteksi gerakan yang berfungsi di aplikasi Android saya.
Yang saya miliki adalah GridLayout
yang berisi 9 ImageView
s. Sumbernya dapat ditemukan di sini: Layout Grid Romain Guys .
File yang saya ambil adalah dari aplikasi Photostream Romain Guy dan hanya sedikit diadaptasi.
Untuk situasi klik sederhana, saya hanya perlu mengatur onClickListener
agar setiap yang ImageView
saya tambahkan menjadi alat utama activity
yang diterapkan View.OnClickListener
. Tampaknya jauh lebih rumit untuk mengimplementasikan sesuatu yang mengenali a fling
. Saya kira ini karena mungkin span views
?
Jika aktivitas saya menerapkan,
OnGestureListener
saya tidak tahu cara mengaturnya sebagai pendengar gerakan untukGrid
atauImage
pandangan yang saya tambahkan.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
Jika aktivitas saya diimplementasikan
OnTouchListener
maka saya tidak memilikionFling
metode untukoverride
(memiliki dua peristiwa sebagai parameter yang memungkinkan saya untuk menentukan apakah melemparkan itu penting).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
Jika saya membuat kebiasaan
View
, sepertiGestureImageView
itu meluasImageView
saya tidak tahu bagaimana cara mengetahui aktivitas yangfling
telah terjadi dari tampilan. Bagaimanapun, saya mencoba ini dan metode tidak dipanggil ketika saya menyentuh layar.
Saya benar-benar hanya perlu contoh nyata dari ini bekerja lintas pandangan. Apa, kapan dan bagaimana saya harus melampirkan ini listener
? Saya harus dapat mendeteksi satu klik juga.
// 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;
}
}
});
Apakah mungkin untuk meletakkan tampilan transparan di atas layar saya untuk menangkap teman kencan?
Jika saya memilih untuk tidak inflate
melihat gambar anak saya dari XML, bisakah saya meneruskan GestureDetector
sebagai parameter konstruktor ke subkelas baru ImageView
yang saya buat?
Ini adalah aktivitas yang sangat sederhana yang saya coba agar fling
pendeteksiannya bekerja: SelectFilterActivity (Diadaptasi dari photostream) .
Saya telah melihat sumber-sumber ini:
Sejauh ini belum ada yang berhasil dan saya berharap ada beberapa petunjuk.