android应用中常使用到帧动画,但是想让动画在应用打开时启动。有些简单技巧,这边总结下:
第一类,ImageView对象使用帧动画,并同步启动
1. XML设置
1.1 在drawable文件夹下新建test_anim.xml
标签选 <animation-list/>,当然下一级标签是<item/> 类似下列代码:
<?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/unlock_handle_normal1" android:duration="300"/> <item android:drawable="@drawable/unlock_handle_normal2" android:duration="300"/> </animation-list>
1.2 layout XML中的ImageView设置
android:id="@+id/test_anim"
android:src="@drawable/test_anim"
2.代码设置如下:
ImageView imgView = (ImageView) findViewById(R.id.test_anim);
AnimationDrawable drawable = (AnimationDrawable) imgView.getDrawable();
drawable.start();
代码设置结束,测试下启动时,改ImageView就会根据animation-list的设置循环播放了。
第二类,按钮或是支持按下、非按下态的View(这边也以ImageView为例)。启动时View为非按下态,此时不点击也能播放。
1. XML设置
1.1 在drawable文件夹下新建test_anim.xml(内容一样)
1.2 在drawable文件夹下新建img_btn.xml(ImageView当button用),标签选 <selector />,当然下一级标签还是<item/>内容如下:
<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_pressed="true" android:drawable="@drawable/test_anim" /> <item android:drawable="@drawable/test_anim_pressed" /> </selector>
假定非按下时,播放test_anim帧动画,按下态呈现test_anim_pressed的drawable资源。
1.3 ImageView在layout 的 XML中设定
android:id="@+id/img_btn"
android:src="@drawable/img_btn"
2. 代码设置
ImageView imgBtn = (ImageView) findViewById(R.id.img_btn);
imgBtn.setPressed(true);
imgBtn.setPressed(false);
// 此处设定启动时从按下态转换到非按下态,触发焦点变化启动动画
这个代码看着有点别扭,但是这样设置后确实有效果。
其他的一些方法 百度中“帧动画启动”可以搜索到,这边就不赘述