Chcę uzyskać fling
wykrywanie gestów w mojej aplikacji na Androida.
Mam to, GridLayout
co zawiera 9 ImageView
s. Źródło można znaleźć tutaj: Układ siatki Romaina Guysa .
Plik, który biorę pochodzi od Romaina Guy'a aplikacji Photostream i został tylko nieznacznie dostosowany.
W przypadku prostego kliknięcia muszę tylko ustawić onClickListener
dla każdego ImageView
dodawanego jako główny, activity
który implementuje View.OnClickListener
. Nieskończenie bardziej skomplikowane wydaje się wdrożenie czegoś, co rozpoznaje fling
. Zakładam, że dzieje się tak, ponieważ może się rozciągaćviews
?
Jeśli moja aktywność się implementuje
OnGestureListener
, nie wiem, jak ustawić to jako detektor gestów dla dodawanych widokówGrid
lubImage
.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...
Jeśli moja aktywność się implementuje,
OnTouchListener
to nie mamonFling
metodyoverride
(ma dwa zdarzenia jako parametry pozwalające mi ustalić, czy rzutowanie było warte uwagi).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...
Jeśli zrobię niestandardowy
View
,GestureImageView
to rozszerzaImageView
nie wiem, jak powiedzieć aktywności, żefling
wystąpił z widoku. W każdym razie próbowałem tego i metody nie były wywoływane, kiedy dotknąłem ekranu.
Naprawdę potrzebuję konkretnego przykładu tego działania w różnych widokach. Co, kiedy i jak mam to załączyć listener
? Muszę też być w stanie wykryć pojedyncze kliknięcia.
// 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;
}
}
});
Czy można umieścić przezroczysty widok na górze ekranu, aby uchwycić rzuty?
Jeśli zdecyduję się nie wyświetlać inflate
podrzędnych widoków obrazów z XML, czy mogę przekazać GestureDetector
parametr konstruktora do nowej podklasy ImageView
, którą tworzę?
Jest to bardzo prosta czynność, dla której próbuję uruchomić fling
wykrywanie: SelectFilterActivity (na podstawie strumienia zdjęć) .
Patrzyłem na te źródła:
Do tej pory nic mi nie działało i liczyłem na pewne wskazówki.