Cierre una actividad pasando de derecha a izquierda con una animación suave para ir a la segunda actividad

Me gustaría tener una actividad que introduce la aplicación y para ser cerrado tienes que deslizarlo de derecha a izquierda (tal vez con una animación suave si no es demasiado trabajo), entonces hay la otra parte de la aplicación que ya tengo , es ActionBar tabs + Swipe Views . He leído algunas guías de Android como implementar vistas de deslizamiento pero no fueron mi caso. ¿Usted me podría ayudar por favor? [Con "animación suave" quiero decir que el golpe tiene que seguir el dedo]

One Solution collect form web for “Cierre una actividad pasando de derecha a izquierda con una animación suave para ir a la segunda actividad”

Normalmente logro esto usando un oyente gestual:

En primer lugar, definir animaciones de traducción dentro de res/anim :

slide_in_left.xml:

 <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="-50%p" android:toXDelta="0" android:duration="@android:integer/config_longAnimTime"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_mediumAnimTime" /> </set> 

slide_in_right.xml:

  <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="50%p" android:toXDelta="0" android:duration="@android:integer/config_longAnimTime"/> <alpha android:fromAlpha="0.0" android:toAlpha="1.0" android:duration="@android:integer/config_mediumAnimTime" /> </set> 

slide_out_left.xml:

 <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="-50%p" android:duration="@android:integer/config_longAnimTime"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_mediumAnimTime" /> </set> 

slide_out_right.xml:

 <set xmlns:android="http://schemas.android.com/apk/res/android"> <translate android:fromXDelta="0" android:toXDelta="50%p" android:duration="@android:integer/config_mediumAnimTime"/> <alpha android:fromAlpha="1.0" android:toAlpha="0.0" android:duration="@android:integer/config_mediumAnimTime" /> </set> 

Luego dentro de su clase de actividad actual:

 class MyGestureDetector extends SimpleOnGestureListener { @Override public boolean onFling(MotionEvent e1, MotionEvent e2, float velocityX, float velocityY) { try { float slope = (e1.getY() - e2.getY()) / (e1.getX() - e2.getX()); float angle = (float) Math.atan(slope); float angleInDegree = (float) Math.toDegrees(angle); // left to right if (e1.getX() - e2.getX() > 20 && Math.abs(velocityX) > 20) { if ((angleInDegree < 45 && angleInDegree > -45)) { startActivity(new Intent(CurrentActivitiy.this, NextActivity.class); CurrentActivity.this.overridePendingTransition( R.anim.slide_in_left, R.anim.slide_out_right); finish(); } // right to left fling } else if (e2.getX() - e1.getX() > 20 && Math.abs(velocityX) > 20) { if ((angleInDegree < 45 && angleInDegree > -45)) { startActivity(new Intent(CurrentActivitiy.this, NextActivity.class); CurrentActivity.this.overridePendingTransition( R.anim.slide_in_right, R.anim.slide_out_left); finish(); } } return true; } catch (Exception e) { // nothing } return false; } } 

A continuación, puede registrar cualquier vista para recibir / escuchar los gestos:

  final GestureDetector gestureDetector = new GestureDetector(new MyGestureDetector()); //the parent layout findViewById(R.id.parent_layout).setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return false; return false; } }); //an image view findViewById(R.id.image_view).setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return false; return false; } }); // a text view findViewById(R.id.text_view).setOnTouchListener(new View.OnTouchListener() { @Override public boolean onTouch(View v, MotionEvent event) { if (gestureDetector.onTouchEvent(event)) return false; return false; } }); 
  • Biblioteca avanzada de RecyclerView - ejemplos de código
  • Cómo desplazarse y desplazarse hasta el último en Appium
  • Implementación de 47degree android-swipelistview para desplazar android ListViewItem
  • Deslizar entre las actividades de android
  • Disminuir la velocidad de View Pager en android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.