Drawable Animation
程序员文章站
2022-03-16 14:36:50
...
Drawable Animation允许你定义一组Drawable资源来创建动画效果,即由Drawable资源组成的帧动画,一般使用一组图片来,通过定义播放行为属性顺序播放图片资源来实现动画效果。AnimationDrawable用来处理用户定义的Drawable Animation。用户可以把Drawable Animation定义为Drawable并放在 res/drawable/ 目录下,与之定义的xml标签是<animation-list>。官方给出的标准定义如下:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>
其中:
android:oneshot
循环播放标记,true:循环播放,false:播放一次并停在最后一帧android:duration
duration用来设置该帧动画的持续时间
如何在代码中使用该动画资源呢,官方给出的示例代码如下
AnimationDrawable rocketAnimation;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = (AnimationDrawable) rocketImage.getBackground();
}
public boolean onTouchEvent(MotionEvent event) {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
rocketAnimation.start();
return true;
}
return super.onTouchEvent(event);
}
另外,官方建议我们不要再onCreate中执行动画的start方法,因为此时AnimationDrawable还没有真正的被加载到窗口中来。我们可以放在用户点击某个按钮时,或者是放到Activity的onWindowFocusChanged()方法中。
推荐阅读
-
animation和transition的区别及使用
-
HTML动画 request animation frame
-
利用CSS3 animation动画属性实现轮播图效果的方法详解
-
Binary XML file line #19: <item> tag requires a ‘drawable‘ attribute or child tag defining a drawabl
-
Fab 和 Dialog 之间的过渡效果(Fab and Dialog Morphing Animation)_html/css_WEB-ITnose
-
利用css3-animation实现逐帧动画效果
-
Android属性动画Property Animation系列一之ObjectAnimator_html/css_WEB-ITnose
-
简单谈谈Core Animation 动画效果
-
Android动画之渐变动画(Tween Animation)详解 (渐变、缩放、位移、旋转)
-
Android动画之补间动画(Tween Animation)实例详解