Android – State Selector Animaciones – Sólo animar de-prensa, NO presione

Tengo un selector muy básico que estoy usando como el fondo para algunos botones para alcanzar abajo estados. Aquí está el xml:

<selector xmlns:android="http://schemas.android.com/apk/res/android" android:exitFadeDuration="@android:integer/config_mediumAnimTime"> <item android:drawable="@color/home_button_blue_down" android:state_selected="true" /> <item android:drawable="@color/home_button_blue_down" android:state_pressed="true" /> <item android:drawable="@color/home_button_blue" /> </selector> 

Con este selector la animación de fundido se producirá cada vez que el botón cambie de estado. En otras palabras, la transición se animará tanto al pasar de presionado a presionado y también al volver de presionado a presionado.

Ahora, mi pregunta es: ¿es posible hacer que sólo se anime uno de estos cambios de estado? Cuando un usuario presiona el botón, quiero que la transición de downstate ocurra inmediatamente sin animaciones. Cuando el botón se vuelve a presionar, quiero que el downstate se desvanezca mientras el estado normal vuelve a desaparecer. ¿Puede hacerse esto?

Puedes hacer algo como esto:

 <?xml version="1.0" encoding="utf-8"?> <animated-selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/selected" android:state_selected="true" android:drawable="@color/home_button_blue_down" /> <item android:id="@+id/usual" android:drawable="@android:color/transparent" /> <transition android:fromId="@+id/usual" android:toId="@+id/selected" > <animation-list> <!--fill in your animation here--> </animation-list> </transition> </animated-selector> 

Tenga en cuenta que animated-selector sólo está disponible después de la API 21.

Más información en esta guía oficial

Animaciones en selector: (mis dibujables eran colores)

 De-Press (Out) android:exitFadeDuration="@android:integer/config_shortAnimTime" Press (In) android:enterFadeDuration="@android:integer/config_shortAnimTime" 

Ejemplo completo:

 <selector xmlns:android="http://schemas.android.com/apk/res/android" android:enterFadeDuration="@android:integer/config_shortAnimTime" android:exitFadeDuration="@android:integer/config_shortAnimTime"> <item android:state_checked="false" android:drawable="@color/transparent"/> <item android:state_checked="true" android:drawable="@drawable/circle_blue"/> </selector> 
  • Android: ¿puede tener un efecto de rizado cuyo color de estado predeterminado es transparente?
  • set Selector for Button Programmatically issues
  • ¿Cualquier diferencia de comportamiento de estos estados ligeramente diferentes estirables?
  • Los elementos ListView no se muestran como activados
  • ListView selector de filas en el API nivel 10?
  • 9-Patch en Selector muestra puntos negros
  • Tema de un selector dibujable en pre-Lollipop
  • Android drawSelectorOnTop con GridView
  • Selección android selectableItemBackground
  • Android - Eliminar Spinner Dropdown Arrow
  • ¿Cómo tener un selector de dibujos vectoriales?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.