Saya perlu mendapatkan posisi awal sentuh (X, Y), posisi gerakan sentuh, dan posisi ujung sentuh layar di android.
92
@Override
public boolean onTouchEvent(MotionEvent event)
{
int x = (int)event.getX();
int y = (int)event.getY();
switch (event.getAction()) {
case MotionEvent.ACTION_DOWN:
case MotionEvent.ACTION_MOVE:
case MotionEvent.ACTION_UP:
}
return false;
}
Ketiga kasus tersebut dibuat agar Anda dapat bereaksi terhadap jenis kejadian yang berbeda, dalam contoh ini mengetuk atau menyeret atau mengangkat jari lagi.
Jawaban tambahan
Diberikan
OnTouchListener
diatur pada beberapa tampilan:
Ini memberi Anda koordinat peristiwa sentuh yang terkait dengan tampilan yang telah ditetapkan oleh pendengar sentuh. Sudut kiri atas tampilan adalah
(0, 0)
. Jika Anda menggerakkan jari Anda di atas tampilan, hasilnyay
akan negatif. Jika Anda menggerakkan jari Anda ke kiri tampilan, hasilnyax
akan negatif.Jika Anda ingin koordinat relatif ke pojok kiri atas layar perangkat, gunakan nilai mentah.
Terkait
sumber
return false
jika tidak maka akan memakan sentuhan.getRawX()
dangetRawY()
harus mengembalikan koordinat absolut dari posisi sentuh pada tampilan apa pun tempat pendengar ditambahkan. Tapi Anda benar, jika ada tampilan lain di atasnya yang kembalitrue
, maka tidak ada tampilan bawah yang akan diberi tahu tentang peristiwa sentuh.getX()
dangetY()
berfungsi dengan baik (tidak perlugetRawX/Y()
).onInterceptTouchEvent
dan kemudian kembalifalse
sehingga acara tersebut diproses seperti biasa.sumber
Ini adalah gaya Koltin, saya menggunakan ini dalam proyek saya dan bekerja dengan sangat baik:
sumber