how to animate one item of layer-list

后端 未结 1 1406
情歌与酒
情歌与酒 2021-02-08 03:27

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 u

相关标签:
1条回答
  • 2021-02-08 03:52

    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.

    0 讨论(0)
提交回复
热议问题