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.
- ? Android: attr / selectableItemBackground con otro fondo existente
- Selector de lista de elementos GridView para varios elementos que no funcionan en Android
- Cómo establecer ListView no se puede hacer clic
- Norma de arquitectura de Android MVP para cargar interfaz de usuario con clase Model que tiene recurso android
- Lengüetas estilo Android SlidingTabs con esquinas redondas
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?
- ¿Cómo implementar un CustomView con estados selectores personalizados?
- ¿Cómo restringir a un usuario que elija sólo imágenes JPG de la galería?
- Agregar color "# e3bb87" a StateListDrawable mediante programación
- Confusión con el selector de "anchura más pequeña 600 dp"
- Botón personalizado de Android; Cambiar el color del texto
- TabLayout seleccionado El icono Tab no está seleccionado al iniciar:
- Establecer el color específico de ColorStateList mediante programación
- XML selector de fondo no funciona en 2.3
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>
- Resalte la salida de error de Android NDK
- Juegos de conflictos de Gradle: 4.0.30 con GoogleAdMobAdsSdk