`

Android动画入门三---Frame Animation

 
阅读更多
Frame Animation。在前面已经说过,Frame Animation是顺序播放事先做好的图像,跟电影类似。不同于animation package, Android SDK提供了另外一个类AnimationDrawable来定义、使用Frame Animation。
Frame Animation定义的动画放到/res/drawable下面。
在xml定义中,必须定义animation-list为根节点,animation-list根节点中包含多个item子节点,每个item节点定义一帧动画:当前帧的drawable资源和当前帧持续的时间。
下面对节点的元素加以说明:
XML属性         说明
drawable 当前帧引用的drawable资源
duration 当前帧显示的时间(毫秒为单位)
oneshot 如果为true,表示动画只播放一次停止在最后一帧上,如果设置为false表示动画循环播放。
variablePadding If true, allows the drawable’s padding to change based on the current state that is selected.
visible 规定drawable的初始可见性,默认为flase;
我们看看具体的例子

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

上面的XML就定义了一个Frame Animation,其包含3帧动画,3帧动画中分别应用了drawable中的3张图片:rocket_thrust1,rocket_thrust2,rocket_thrust3,每帧动画持续200毫秒。
然后我们将以上XML保存在res/drawable/文件夹下,命名为rocket_thrust.xml
在OnCreate()中增加如下代码:
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.anim.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类的介绍,可以参考sdk
https://developer.android.com/reference/android/graphics/drawable/AnimationDrawable.html
获取、设置动画的属性
int getDuration() 获取动画的时长
int getNumberOfFrames() 获取动画的帧数
boolean isOneShot()获取oneshot属性

Void setOneShot(boolean oneshot)设置oneshot属性
void inflate(Resurce r,XmlPullParser p,
AttributeSet attrs) 增加、获取帧动画
Drawable getFrame(int index) 获取某帧的Drawable资源
void addFrame(Drawable frame,int duration) 为当前动画增加帧(资源,持续时长)动画控制
void start() 开始动画
void run() 外界不能直接掉调用,使用start()替代
boolean  isRunning() 当前动画是否在运行
void stop() 停止当前动画
分享到:
评论

相关推荐

    帧动画frame-by-frame animation

    点击图片的右边,则图片向右移动,到屏幕边缘停止 电击图片左边,则图片向左移动,到屏幕左边缘停止

    Android代码-Android-Animation-Set

    Android Animation Detailed Tutorial / Android 动画详尽教程       中文讲解(README)请直接点击对应标题 English explanation(or readme), Do not click on the title, please click on the tip ...

    Android---Frame动画

    Android---Frame动画 将图片放到项目中,应用 AnimationDrawable和ImageView 实现动画效果!

    玩转Android---2D图形及动画---Frame动画

    NULL 博文链接:https://hualang.iteye.com/blog/1137637

    Frame Animation

    基本动画案例:Tween Animation, Frame Animation,介绍参考:http://blog.csdn.net/forwardyzk/article/details/42739281

    Android学习之笔记---Animation的使用

    Animation从总体来说可以分为两类: Tweened Animations:该类提供了旋转,移动,...Frame-By-Frame Animations:该类可以创建一个Drawable序列,这些Drawable可以按照指定的事件间隔一个一个显示,和动画片差不多。

    Android Animation Frame逐帧动画2

    上次提供了Animation动画其一Tween补间动画的源代码,这次提供其二Frame动画的源代码(以直接编码的形式实现Frame动画的Demo,笔者资源中另有以xml形式实现的Demo)。

    X-Frame-Options相关文件

    点击劫持:X-Frame-Options头缺失 in a frame because it set 'X-Frame-Options' to 'deny'

    Android frame by frame animation动画显示

    Android frame by frame animation动画显示源代码

    Android动画之Animation

    Android动画之Animation的使用。包括变换动画Tween Animation,帧动画Frame Animation,布局动画Layout Animation,属性动画Property Animation

    Android Animation Frame逐帧动画

    上次提供了Animation动画其一Tween补间动画的源代码,这次提供其二Frame动画的源代码(以xml形式实现的Demo。笔者资源中另有以直接编码的形式实现Frame动画的Demo)。

    帧动画 frameanimation

    请前往博客:https://blog.csdn.net/Xoxo_x/article/details/80188453

    jquery--frame--ziyuan

    jquery--frame--ziyuan jquery--frame--ziyuan jquery--frame--ziyuan jquery--frame--ziyuan

    darlingjs-live-on-animation-frame:更新动画帧上的管道

    darlingjs在动画帧上实时播放 更新动画帧上的管道安装 npm i --save darlingjs-live-on-animation-frame用法 var darling = require ( 'darlingjs' ) ;var box2d = require ( 'darlingjs-box2d' ) ;var pixijs = ...

    animation frame 动画

    这个demo主要讲解了 animation 的frame 动画,希望可以帮助需要的同学.

    Android的三种动画图形编程

    5、如果一切正常,那么可以分别看到帧动画(frame-by-frame)、布局动画(layout animation)和视图动画(view animation) 目的:动画效果可以让用户的体验感非常好。在“演示Android中的文字和图片特效控件的使用”资源...

    X-Frame-Options头缺失漏洞修复-esapi.zip

    X-Frame-Options头缺失漏洞 修复需要ClickjackFilter.jar ,引入esapi.jar(内含ClickjackFilter)即可。

    X-Frame-Options未配置漏洞修复参考v1.0.docx

    X-Frame-Options HTTP响应头是用来确认是否浏览器可以在frame或iframe标签中渲染一个页面,网站可以用这个头来保证他们的内容不会被嵌入到其它网站中,以来避免点击劫持。 恶意攻击者可以利用漏洞攻击做到: 击者...

    FrameAnimation:适用于Android的高性能帧动画库

    FrameAnimation 用TextureView或SurfaceView 高性能播放帧动画,避免在很多帧的情况下使用AnimationDrawable带来的OOM和卡顿问题。 华为 mate 20X 1920×1080 24bit color JPG 201frames 24fps 测试效果 download ...

    android 补间动画(Tween Animation)和Frame Animation(帧动画)简单使用

    包含AlphaAnimation渐变效果 TranslateAnimation:位移渐变 ScaleAnimation:缩放渐变 RotateAnimation:旋转渐变 AnimationSet:组合渐变... frameAnimation:帧动画的xml和代码实现方式,非常适合新手朋友参考。

Global site tag (gtag.js) - Google Analytics