Animar

2012-02-10 13 views
33

tengo un selector simple para mi ListViewAnimar

<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 

    <item android:drawable="@drawable/yellow_arc" android:state_activated="true"/> 
    <item android:drawable="@drawable/yellow_nonarc" android:state_activated="false"/> 

</selector> 

Quiero animar la transición entre estos dibujables cuando el estado de los puntos de vista se cambia de activado a no-activado y viceversa vica.

Si ejecuta el example en demostraciones de API, verá una animación obvia de fundido de entrada/salida mientras se modifica el estado activado de la vista.

Lo que quiero es una animación personalizada mientras se cambia el estado de la vista. Creo que debería hacerse a través de xml pero no pude encontrar la manera.

Gracias de antemano.

EDIT:

supongo que he encontrado algo útil que hay una activated_background.xml en \Android\android-sdk\platforms\android-API_VERSION\data\res\drawable que incluye

<selector xmlns:android="http://schemas.android.com/apk/res/android" 
     android:exitFadeDuration="@android:integer/config_mediumAnimTime"> 
    <item android:state_activated="true" android:drawable="@android:drawable/list_selector_background_selected" /> 
    <item android:drawable="@color/transparent" /> 
</selector> 

Así que el ejemplo de la API-demos achieveing ​​esta animación de fundido de salida al declarar un exitFadeDuration. Sin embargo, esto no es exactamente lo que quiero .. Quiero declarar animaciones personalizadas para la transición entre las estructuras del estado ya que la animación de fundido de entrada/salida no se ve bien para mis dibujos.

Respuesta

0

¿Es el desvanecimiento que desea?

creo que va a ser el mismo que el funcionamiento de un textSwitcher, tal vez desee cambiar a un ViewSwitcher lugar, el fundido se realiza a favor de la gramaticalmente


Animation in = AnimationUtils.loadAnimation(this, 
       android.R.anim.fade_in); 
     Animation out = AnimationUtils.loadAnimation(this, 
       android.R.anim.fade_out); 

     mSwitcher1.setInAnimation(in); 
     mSwitcher1.setOutAnimation(out); 

+0

A ** TextSwitcher ** no sería una buena solución. Si lo uso tengo que manejar el mecanismo de reciclaje de vista dentro de ** ListView ** también porque cada elemento de la lista tendrá un selector ** separado **. Entonces sería un exceso. He intentado algo similar a esto y es difícil de manejar. Creo que es mejor usar los selectores ya que están disponibles y manejan el mecanismo seleccionado/no seleccionado por sí mismo. –