titulo studio poner nombre change cambiar bar activity android gesture swipe-gesture

studio - change title activity android



Android: desliza la pantalla para abrir otra actividad? (4)

Me doy cuenta de que esta es una pregunta antigua, pero para cualquier otra persona que se pregunte por qué el código anterior no funciona es porque no ha configurado OnTouchListener en un objeto View. Esta es la razón por la cual su "evento" de barrido no está siendo recogido, porque nada lo está escuchando.

Él podría agregar esta línea para establecer swipes en su botón de imagen (aunque probablemente querría una mejor vista de Objeto):

flora.setOnTouchListener(gestureListener);

Soy programador de n00b y necesito mucha ayuda.

Solo para fines de tutoría, quiero hacer una enciclopedia simple de flora y fauna (plantas y animales)

Quiero que mi pantalla de inicio pueda arrastrarse igual que la pantalla de inicio de Android . Desliza el dedo hacia la derecha para abrir la página de Plantas y hacia la izquierda para abrir la página de Animales. No sé cómo hacer el efecto de transición . Así que podemos arrastrarlo hasta la mitad para ver lo que hay en la página siguiente y simplemente arrastrar hacia atrás para cancelarlo.

¿Pueden ustedes compartir un enlace para que la pantalla se pueda arrastrar?

Gracias antes

[Editar]

@Agarwal Probé el código de tu Link2 y no está funcionando

Intento probar si el gesto se detectó o no colocando Toast dentro de la clase interna, pero no se muestra. Sin embargo, el Link1 es básicamente el mismo.

y por el aspecto del código, creo que no puede hacer que mi pantalla se pueda arrastrar como en la pantalla de inicio de Android

mi código:

public class Home extends Activity implements OnClickListener { private GestureDetector gestureDetector; View.OnTouchListener gestureListener; ImageButton flora, fauna; Intent go; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); initialize(); gestureDetector = new GestureDetector(new SwipeGestureDetector()); gestureListener = new View.OnTouchListener() { public boolean onTouch(View v, MotionEvent event) { return gestureDetector.onTouchEvent(event); } }; } private void initialize() { //find view by id to image button //set onClickListener to image button } public void onClick(View v) { //normal switch and case for each button } private void onLeftSwipe() { Toast t = Toast.makeText(Home.this, "Left swipe", Toast.LENGTH_LONG); t.show(); go = new Intent("test.apps.FLORA"); startActivity(go); } private void onRightSwipe() { Toast t = Toast.makeText(Home.this, "Right swipe", Toast.LENGTH_LONG); t.show(); go = new Intent("test.apps.FAUNA"); startActivity(go); } private class SwipeGestureDetector extends SimpleOnGestureListener { private static final int SWIPE_MIN_DISTANCE = 50; private static final int SWIPE_MAX_OFF_PATH = 200; private static final int SWIPE_THRESHOLD_VELOCITY = 200; @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { try { Toast t = Toast.makeText(Home.this, "Gesture detected", Toast.LENGTH_SHORT); t.show(); float diffAbs = Math.abs(e1.getY() - e2.getY()); float diff = e1.getX() - e2.getX(); if (diffAbs > SWIPE_MAX_OFF_PATH) return false; // Left swipe if (diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { Home.this.onLeftSwipe(); } // Right swipe else if (-diff > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { Home.this.onRightSwipe(); } } catch (Exception e) { Log.e("Home", "Error on gestures"); } return false; } } }


Utilice la función de intención aquí para ir a la siguiente actividad en el detector de gestos

Será b


Actividad de Android de detección de deslizamiento

Crear una clase de actividad base

public abstract class _SwipeActivityClass extends AppCompatActivity { private static final int SWIPE_MIN_DISTANCE = 120; private static final int SWIPE_MAX_OFF_PATH = 250; private static final int SWIPE_THRESHOLD_VELOCITY = 200; private GestureDetector gestureDetector; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); gestureDetector = new GestureDetector( this, new SwipeDetector()); } protected abstract void onSwipeRight(); protected abstract void onSwipeLeft(); public class SwipeDetector extends GestureDetector.SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { // Check movement along the Y-axis. If it exceeds SWIPE_MAX_OFF_PATH, // then dismiss the swipe. if (Math.abs(e1.getY() - e2.getY()) > SWIPE_MAX_OFF_PATH) { return false; } //toast( "start = "+String.valueOf( e1.getX() )+" | end = "+String.valueOf( e2.getX() ) ); //from left to right if( e2.getX() > e1.getX() ) { if (e2.getX() - e1.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { onSwipeRight(); return true; } } if( e1.getX() > e2.getX() ) { if (e1.getX() - e2.getX() > SWIPE_MIN_DISTANCE && Math.abs(velocityX) > SWIPE_THRESHOLD_VELOCITY) { onSwipeLeft(); return true; } } return false; } } @Override public boolean dispatchTouchEvent(MotionEvent ev) { // TouchEvent dispatcher. if (gestureDetector != null) { if (gestureDetector.onTouchEvent(ev)) // If the gestureDetector handles the event, a swipe has been // executed and no more needs to be done. return true; } return super.dispatchTouchEvent(ev); } @Override public boolean onTouchEvent(MotionEvent event) { return gestureDetector.onTouchEvent(event); } }

Luego extienda su MainActivity desde _SwipeActivityClass

implementar métodos, onSwipeLeft () y onSwipeRight () para iniciar otra actividad