2011-04-25 16 views
8

Tengo un objeto de lista de capas, contiene dos imágenes, una es fondo, y la otra es una imagen de disco de rotación que se rotará en la parte superior de la imagen de fondo . es decir, uso esta lista de capas como fondo de diseño lineal, y solo quiero animar el elemento "disk_bg" de la lista de capas;cómo animar un elemento de lista de capas

<?xml version="1.0" encoding="utf-8"?> 
<layer-list xmlns:android="http://schemas.android.com/apk/res/ 
android"> 
     <item android:drawable="@drawable/player_bg" /> 

     <item android:top="166dp" > 
      <bitmap android:id="@+id/disk_bg" android:src="@drawable/cd" 
     android:gravity="center" /> 
     </item> 

utilizo esta capa-lista como un fondo de diseño, ¿sabe cómo puedo animar la capa disk_bg en mi solicitud?

¿me pueden ayudar, muchas gracias a ti ~

no saben a qué me pregunta? o no hay forma de hacer eso?

Respuesta

2

Primero cree 2 (o más) recursos de la lista de capas, es decir, * layer_frame1.xml * y * layer_frame2.xml *, donde establece sus marcos. En tu caso, digamos cambiando el android: parte superior del elemento del disco.

A continuación, cree un recurso de animación-lista en la que se establece el calendario y el orden de las tramas:

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

    <item 
     android:drawable="@drawable/layer_frame1" 
     android:duration="100"/> 
    <item 
     android:drawable="@drawable/layer_frame2" 
     android:duration="100"/> 

</animation-list> 

guardarlo en un archivo * es decir estirable/player_animation.xml * y establecerla como fondo en una vista

<View 
     android:id="@+id/animation_test" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:background="@drawable/player_animation" /> 

Por último, en su código solo diga cuando desee que comience la animación.

((AnimationDrawable)findViewById(R.id.animation_test).getBackground()).start(); 

Cuidado con no lo hacen iniciar la animación dentro onCreate() método.

+0

hola, sotcha gracias por tu ayuda; muy útil para mí; – gladman

+0

Tenga en cuenta que ponga el archivo xml 'animation-list' en la carpeta Drawable, no en anim. es una especie de 'AnimationDrawable' no Animación. Consulte la sección de animación de marcos en http://developer.android.com/guide/topics/resources/animation-resource.html – Youngjae

Cuestiones relacionadas