Quero que a flingdetecção de gestos funcione no meu aplicativo Android.
O que eu tenho é um GridLayoutque contém 9 ImageViews. A fonte pode ser encontrada aqui: Grid Layout da Romain Guys .
Esse arquivo é do aplicativo Photostream de Romain Guy e foi apenas ligeiramente adaptado.
Para a situação de clique simples, preciso definir apenas o onClickListenerpara cada um ImageViewque adiciono como o principal activityque implementa View.OnClickListener. Parece infinitamente mais complicado implementar algo que reconhece a fling. Presumo que isso é porque pode abranger views?
Se minha atividade é implementada
OnGestureListener, não sei como defini-lo como ouvinte de gestos para asGridou asImagevisualizações que adiciono.public class SelectFilterActivity extends Activity implements View.OnClickListener, OnGestureListener { ...Se minha atividade é implementada
OnTouchListener, não tenho umonFlingmétodo paraoverride(ela tem dois eventos como parâmetros, permitindo-me determinar se o caso foi digno de nota).public class SelectFilterActivity extends Activity implements View.OnClickListener, OnTouchListener { ...Se eu criar um costume
View, assimGestureImageViewprolongadoImageView, não sei como dizer à atividade queflingocorreu uma a partir da visualização. De qualquer forma, tentei isso e os métodos não foram chamados quando toquei na tela.
Eu realmente só preciso de um exemplo concreto desse trabalho entre pontos de vista. O que, quando e como devo anexar isso listener? Também preciso detectar cliques únicos.
// 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;
}
}
});
É possível colocar uma visão transparente por cima da minha tela para capturar arremessos?
Se eu optar por não inflateexibir as imagens da imagem filha no XML, posso passar o GestureDetectorparâmetro como construtor para uma nova subclasse ImageViewcriada por mim?
Esta é a atividade muito simples para a qual estou tentando fazer a flingdetecção funcionar: SelectFilterActivity (Adaptado do photostream) .
Eu estive olhando para estas fontes:
Nada funcionou para mim até agora e eu estava esperando por algumas dicas.
Existem 2 importações com cuidado ao escolher que ambas são diferentes
