Android學習——Frame動畫、Shape動畫

1. Frame幀動畫
animation-list
屬性oneshot : 幀動畫的自動執行。如果爲true,表示動畫只播放一次停止在最後一幀上,如果設置爲false表示動畫循環播放。
示例:
新建/drawable/anim_img.xml

<?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/img01"
        android:duration="1000"/>
    <item
        android:drawable="@drawable/img02"
        android:duration="1000"/>
    <item
        android:drawable="@drawable/img03"
        android:duration="1000"/>
    <item
        android:drawable="@drawable/img04"
        android:duration="2000"/>
    <item
        android:drawable="@drawable/img05"
        android:duration="2000"/>
    <item
        android:drawable="@drawable/img06"
        android:duration="1000"/>
    <item
        android:drawable="@drawable/img07"
        android:duration="1000"/>
    <item
        android:drawable="@drawable/img08"
        android:duration="1000"/>

</animation-list>

佈局文件:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="${relativePackage}.${activityClass}" >

    <ImageView
        android:id="@+id/imgv"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true" />

    <Button
        android:id="@+id/btn"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_alignParentLeft="true"
        android:layout_alignParentRight="true"
        android:text="frame動畫測試" />

</RelativeLayout>

java文件:

public class MainActivity extends Activity {
    private ImageView imgv;
    private Button btn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        imgv = (ImageView) this.findViewById(R.id.imgv);
        btn = (Button) this.findViewById(R.id.btn);
        btn.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                imgv.setBackgroundResource(R.drawable.anim_img);
                AnimationDrawable animationDrawable = (AnimationDrawable) imgv.getBackground();
                animationDrawable.start();
            }
        });
    }
}

運行效果:
這裏寫圖片描述
2. shape動畫
背景選擇器:
gradient漸變
stroke描邊
conners圓角
新建背景選擇器res/layout/btn_selector.xml:

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

    <item android:state_pressed="true">
        <shape>
            <!-- 漸變 -->
            <gradient 
                android:endColor="#FFFFFF" 
                android:startColor="#ff0000" 
                android:type="linear"
                android:gradientRadius="20"/>
              <!-- 描邊  -->
            <stroke
                android:width="8dp"
                android:color="#00ff00"
                android:dashWidth="10dp"
                android:dashGap="5dp"/>
               <!-- 圓角 -->
             <corners android:radius="10dp"/>
             <padding
                android:left="10dp"
                android:top="5dp"
                android:right="10dp" 
                android:bottom="5dp"/>          
        </shape>
    </item>
    <item >
        <shape>
            <!-- 漸變 -->
            <gradient 
                android:endColor="#ff0000" 
                android:startColor="#ff0000"/>
              <!-- 描邊  -->
            <stroke
                android:color="#000000"/>
             <padding
                android:left="10dp"
                android:top="5dp"
                android:right="10dp" 
                android:bottom="5dp"/>          
        </shape>
    </item>
</selector>

佈局文件中添加一個Button按鈕:

 <Button
         android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"        
        android:background="@layout/btn_selector"
        android:text="shape測試" />

運行效果:
這裏寫圖片描述
點擊按鈕之後:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章