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


Detecta qué vista se desliza el dedo en Android

Si bien se han hecho preguntas similares en el pasado, no parecen haber sido respondidas realmente, lo que podría deberse a una confusión en cuanto a lo que se está preguntando.

En pocas palabras, me gustaría detectar qué vista se está introduciendo a medida que su dedo se desliza sobre la pantalla. El mejor ejemplo de esto en la acción es el teclado suave en cualquier teléfono android. Cuando presionas cualquier tecla aparece como una ventana emergente para decirte qué letra hay debajo de tu dedo. Si ahora mueve su dedo sobre el teclado en un solo gesto las diversas letras emergen mientras que usted se mueve sobre las varias letras del alfabeto.

  • El host de destino no debe ser nulo o configurado en parameters.scheme = null, host = null
  • Protege y desprotege el archivo para evitar la eliminación accidental en Android mediante aplicaciones de limpieza con errores
  • Devolver una gota con json
  • El texto no ellipsiza
  • Android: ¿Qué hacer si el rendimiento de ListView sigue siendo insuficiente?
  • Estiramiento de la imagen para adaptarse
  • Qué oyentes se utilizan para este tipo de comportamiento. He intentado OnTouchListeners, pero parecen ser sólo cuando usted "toque" el botón en lugar de "dedo pasado" ellos

    Button button = (Button)findViewById(R.id.button); button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) {doStuff();} }); button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { doStuff(); return false; } }); 

    OnFocusChangeListener tampoco ayuda.

  • Android: perdiendo los datos USB entrantes (alta velocidad)
  • API de baja energía de Bluetooth en Java
  • ¿Qué es una devolución de llamada de carpeta en Android?
  • Cómo mostrar el elemento de menú con el icono y el texto en AppCompatActivity
  • La sentencia IF simplemente no funciona
  • Ocultar tono dtmf al marcar
  • 5 Solutions collect form web for “Detecta qué vista se desliza el dedo en Android”

    • Crear un diseño
    • Añadir vistas a su diseño
    • Establezca setOnTouchListener en su diseño
    • Anule el método onTouch con lo siguiente:

       public boolean onTouch(View v, MotionEvent event) { LinearLayout layout = (LinearLayout)v; for(int i =0; i< layout.getChildCount(); i++) { View view = layout.getChildAt(i); Rect outRect = new Rect(view.getLeft(), view.getTop(), view.getRight(), view.getBottom()); if(outRect.contains((int)event.getX(), (int)event.getY())) { // over a View } } } 

    EDITAR:

    Vi el teclado. Supongo que sólo se conoce una vista y coordenadas de cada letra. Así que usted puede calcular fácilmente la letra que el usuario desliza a través de

    Y AHORA LA RESPUESTA:

    No estoy seguro, pero probablemente este código ayuda a su.

    Está muy lejos, lo escribí para mí. Pero la idea es seguir.

    Si no recuerdo bien, no hay gesturedetector para las vistas, pero puede combinar touchlistener de la vista con geturelistener de su actividad.

    Una vez que hayas tocado tu vista, tienes

     private GestureDetector mGestureDetector; // x and y coordinates within our view private static float sideIndexX; private static float sideIndexY; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ... mGestureDetector = new GestureDetector(this, new SideIndexGestureListener()); } class MyGestureListener extends GestureDetector.SimpleOnGestureListener { @Override public boolean onScroll(MotionEvent e1, MotionEvent e2, float distanceX, float distanceY) { // we know already coordinates of first touch // we know as well a scroll distance sideIndexX = sideIndexX - distanceX; sideIndexY = sideIndexY - distanceY; // when the user scrolls within our side index // we can show for every position in it a proper // item in the country list if (sideIndexX >= 0 && sideIndexY >= 0) { doStuff(); } return super.onScroll(e1, e2, distanceX, distanceY); } } button.setOnTouchListener(new OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { // now you know coordinates of touch // store them sideIndexX = event.getX(); sideIndexY = event.getY(); doStuff(); return false; } }); 

    Es posible que desee probar GestureDetector .

    http://android-developers.blogspot.com/2010/06/making-sense-of-multitouch.html está orientado a multitouch, pero esto es un buen comienzo para entender el android touch / gestos, la siguiente parada, api docs / samples

    La respuesta simple es que no se puede – no como el iPhone en el modo de accesibilidad.

    Hasta el helado Sandwich que es. Ahora tiene la capacidad del iPhone de ser capaz de identificar elementos bajo su dedo sin tener que levantarlo.

    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.