how to animate one item of layer-list

这一生的挚爱 提交于 2020-01-01 02:48:06

问题


I have a layer list object, it contain two images, one is background, and the other is a rotation disk image which will be raotated at the top of the background image. i.e. I use this layer-list as a linearlayout background, and I only want to animate "disk_bg" item of the layer-list;

<?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>

I use this layer-list as a layout background, do you know how can I animate the disk_bg layer in my application?

can you help me, many thanks to you~

don't you get my question? or there is no way to do that?


回答1:


First create 2(or more) layer-list resources ie *layer_frame1.xml* and *layer_frame2.xml* , where you set your frames. In your case let's say changing the android:top of the disk item.

Then create an animation-list resource where you set the timing and order of the frames :

<?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>

Save it in a file ie *drawable/player_animation.xml* and set it as background on a View

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

Finally in your code just say when you want the animation start.

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

Watch out do not start the animation inside onCreate() method.



来源:https://stackoverflow.com/questions/5777225/how-to-animate-one-item-of-layer-list

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!