天分享的内容比较简单,就是一个简单加载效果
AnimationDrawable是实现Drawable Animation的基本类
XML文件存放在工程中res/drawable目录下,XML文件的指令(属性)为动画播放的顺序和时间间隔。
在XML文件中<animation-list>元素为根节点,<item>节点定义了每一帧,表示一个drawable资源的帧和帧间隔。
和往常一样,我们先来看效果,不过今天的效果特别简单。
我们在项目res/drawable 路径下load.xml
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<!-- item 放图片 设置图片显示时间 -->
<item
android:drawable="@drawable/amp_land_1"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_2"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_3"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_4"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_5"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_6"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_7"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_8"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_9"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_10"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_11"
android:duration="100" />
<item
android:drawable="@drawable/amp_land_12"
android:duration="100" />
</animation-list>
需要留意的是:当Android:oneshot属性为true时,表示此动画只执行一次,最后停留在最后一帧。设置为false则表示动画循环播放。以前项目中有个展示关于航班飞机状态的问题,其实设置按照这种方法设置oneshot就好,没那么复杂。
<ImageView
android:id="@+id/iv_load"
android:layout_width="match_parent"
android:layout_height="30dp"
android:layout_centerInParent="true"
android:background="#00000000"
android:src="@drawable/load"
android:scaleType="center" />
<TextView
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="加载中" />
ImageView imageView = (ImageView)this.findViewById(R.id.iv_load);
AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getDrawable();
animationDrawable.start();
Drawable Animation本身就是一个Drawable资源文件,所以直接在xml中设置为指定View的背景即可。animation.start()
同样可以通过代码设置View. setBackgroundResource(resID) animation.start()
https://mp.weixin.qq.com/s/OERkF1-uqMqaw0vqhKAQlg