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測試" />
運行效果:
點擊按鈕之後: