Chcę uzyskać flingwykrywanie gestów w mojej aplikacji na Androida.
Mam to, GridLayoutco zawiera 9 ImageViews. Ź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ć onClickListenerdla każdego ImageViewdodawanego jako główny, activityktó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ówGridlubImage.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...Jeśli moja aktywność się implementuje,
OnTouchListenerto nie mamonFlingmetodyoverride(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,GestureImageViewto rozszerzaImageViewnie wiem, jak powiedzieć aktywności, żeflingwystą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ć inflatepodrzędnych widoków obrazów z XML, czy mogę przekazać GestureDetectorparametr konstruktora do nowej podklasy ImageView, którą tworzę?
Jest to bardzo prosta czynność, dla której próbuję uruchomić flingwykrywanie: 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.
Istnieją 2 rodzaje importu, zachowaj ostrożność przy wyborze, że oba są różne
