Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


Detectar la velocidad de desplazamiento de GridView – Android

Tengo una vista de encargo subclassed de GridView que utilizo para exhibir una cierta animación / efecto 3D de encargo. La forma en que hago esto es mediante la sustitución de dispatchDraw() .

Idealmente, me gustaría saber la velocidad actual del desplazamiento al hacer el sorteo. Actualmente, utilizo GestureDetector.OnGestureListener y captura eventos onScroll y esto funciona muy bien, excepto que no detecta también flings como eventos de desplazamiento.

Una idea que me viene a la mente sería capturar eventos onFling y luego hacer el procesamiento futuro por mi cuenta con el fin de detectar la velocidad en un momento posterior.

¿Hay alguna mejor manera de lograr esto? Cualquier forma simple de consultar la velocidad de desplazamiento actual de un GridView?

Gracias.

  • Android comprobar disponibilidad GPS en el dispositivo
  • Publicar en Google Play a través de la línea de comandos
  • Cómo obtener las propiedades del dispositivo de Android
  • Tamaño de la fuente del botón Android
  • Obtenga el contexto del proyecto de prueba en el caso de prueba de Android junit
  • Errores de cálculo de valor de doble precisión en los procesadores MediaTek
  • Android Navigation Drawer Mostrar indicador para los fragmentos de nivel inferior
  • Cómo configurar mi gradle para la versión final de apk
  • One Solution collect form web for “Detectar la velocidad de desplazamiento de GridView – Android”

    Bueno, espero que ya recibiste tu respuesta, pero seguiré publicando una, para uso futuro …

    Tendrá que anular OnScrollListener y calcular la velocidad por sí mismo. De Cinemática: Distance/Time = Speed

     private class SpeedDetectorOnScrollListener implements OnScrollListener { private long timeStamp; private int prevFirstVisibleItem; private int scrollingSpeed; public SpeedDetectorOnScrollListener () { timeStamp = System.currentTimeMillis(); lastFirstVisibleItem = 0; } @Override public void onScroll(AbsListView view, int firstVisibleItem, int visibleItemCount, int totalItemCount) { long lastTime = System.currentTimeMillis(); timeStamp = lastTime; lastFirstVisibleItem = firstVisibleItem; scrollingSpeed = (firstVisibleItem - lastFirstVisibleItem)/(lastTime-timeStamp) } public int getSpeed() { return scrollingSpeed; } } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.