Android帧动画在应用启动时同步启动

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);

// 此处设定启动时从按下态转换到非按下态,触发焦点变化启动动画

这个代码看着有点别扭,但是这样设置后确实有效果。

 

其他的一些方法 百度中“帧动画启动”可以搜索到,这边就不赘述

你可能感兴趣的:(帧动画)