Drawable Animation 使用介绍
来源:互联网 发布:龙席网络facebook店铺 编辑:程序博客网 时间:2024/05/05 07:28
转载请注明出处:http://blog.csdn.net/zhaokaiqiang1992(目前只能用在View对象上的动画效果的实现有两种,一种就是上一篇的View Animation,即补间动画,剩下的一种,就是这一篇要介绍的,Drawable Animation,即帧动画。在最新版本的API中,出现了一个更加强大的方式,PropertyAnimation,即属性动画,稍后将会介绍)
Drawable animation允许我们一张一张的加载Drawable资源。这是一种传统的动画方式,通过一系列不同图片的顺序播放,可以制造出电影一样的效果。AnimationDrawable类是实现这种动画效果的基类。
用AnimationDrawable提供的API,我们当然可以在代码中定义想要展示的每一帧的图片,但是使用xml来列出我们想要展现的图片的方式更加的方便。如果采用xml的方式,我们需要在res/drawable文件下面创建,然后在xml文件里面指定我们要展示的每一帧的图片资源和持续的时间。
XML文件由<animation-list>作为根节点元素,在根节点里面,是一系列的<item>的子节点,在子节点里面定义了要展示的图片和每一帧持续的时间。下面是一个使用XML文件定义Drawable Animation的一个实例。
<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>
这个动画只会展示3帧的动画,通过设置android:oneshot属性为true,动画只会播放一次然后就停止,并且会一直显示最后一张图片。如果我们设置成false,那么动画就会一直循环播放。我们把这个文件保存在/res/drawable/rocket_thrust.xml,然后我们就可以给一张View对象添加动画的背景图片。下面是一个Activity的示例,我们给一个Imageview添加了动画效果,然后当点击时候,动画开始播放。
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);}
有一点非常重要,就是AnimationDrawable的start()方法不能够在Activity的onCreate()调用,因为这个时候,AnimationDrawable可能还没有完全的绑定到Window上。如果我们想马上播放动画,我们可以在onWindowFocusChanged()方法里面调用,因为这个方法是在window已经获取到焦点之后回调的,可以保证已经绑定结束。
如果想了解更多关于XML的语法或者是可选的tag和属性值,请参考Animation Resources。
原文地址:http://developer.android.com/guide/topics/graphics/drawable-animation.html#top
0 0
- Drawable Animation 使用介绍
- 【Android界面实现】Drawable Animation 使用介绍
- Drawable animation
- Drawable Animation
- Drawable Animation
- Drawable Animation
- Drawable Animation
- Android-animation-drawable Animation
- View Animation 使用介绍
- View Animation和Drawable Animation
- Drawable Animation -- 使用多幅图片实现动画
- Android帧动画(Drawable Animation)的使用总结
- 动画的使用1——Drawable Animation
- 【实战】使用animation drawable来实现动画效果
- Android Drawable Animation 学习
- Android之Drawable Animation
- android-Drawable Animation
- Android动画-Drawable Animation
- 如何在同一台服务器起多个pm2进程
- WindowManager类使用详解——用户首次打开APP的使用教学蒙板效果实现
- View Animation 使用介绍
- Failover cluster configuration common issues
- Java Notes-4
- Drawable Animation 使用介绍
- WCDMA笔记(6)
- 使用View Animation实现动画加载界面
- engine备份与恢复小记
- Java Notes-5
- PhotoView——支持单点/多点触摸的放缩图片的实现
- Java Notes-6
- 欢迎使用CSDN-markdown编辑器
- LeetCode 171:Excel Sheet Column Number