关闭

Android动画(1)--概述及FrameAnimation

标签: android动画Animation
156人阅读 评论(0) 收藏 举报
分类:

最近看了一些研究Android动画的一些资料,为了方便自己和他人学习,现在在此做一些记录分析。

概述


Android动画的实现不得不谈一个类 ,叫Animation这些类为某个属性动画系统提供功能,它使你可以赋予任何类型的对象属性以动态特性。int,float,和十六进制颜色值这些被默认支持。你还可以通过指定一个客制的类型计算器,告诉系统如何对给给定的类型计算它的值,以此来为任何其他类型增加动画效果。 更多信息,参见动画章节向导 你可以设置多种不同类型的内插器(包含于 android.view.animation之中),指定关键帧,或者顺序或同时播放的动画组(通过AnimatorSet),以更进一步控制你的动画行为。


Animation可以分为ViewAnimation和Property Animation,当然,View的Animation又分为帧动画和补间动画。为了实现动画效果,我们不仅可以使用Animation这个类,还可以使用自定义view来实现相关功能

View Animation(Tween Animation) 只能支持简单的缩放、平移、旋转、透明度基本的动画,且有一定的局限性。
Frame Animation (Drawable Animation) 使用Animation-list将一串drawable进行排列,ViewAnimation的一种形式
Property Animation 通过动画的方式改变对象的属性了

帧动画(Frame Aniamtion )

帧动画的实现比较简单,有点类似连环画一样,是将一系列drawable串起来的动画形式

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
    android:oneshot="false">

    <item
        android:drawable="@mipmap/animation1"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation2"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation3"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation4"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation5"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation6"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation7"
        android:duration="150"></item>
    <item
        android:drawable="@mipmap/animation8"
        android:duration="150"></item>
</animation-list>
    根标签为animation-list,其中oneshot代表着是否只展示一遍,设置为false会不停的循环播放动画
    根标签下,通过item标签对动画中的每一个图片进行声明
    android:duration 表示展示所用的该图片的时间长度

动画的使用方法

1,将文件创建在Drawable目录下
2,代码中引用

imgPic.setImageResource(R.drawable.animation);
        //给动画资源赋值
        animationDrawable = (AnimationDrawable) imgPic.getDrawable();

//动画开始
  animationDrawable.start();//开始
  //动画结束
  animationDrawable.stop(); //停止
  就是这么简单

使用注意

此方法小概率会导致OOM,不推荐使用

效果图

这一节就写到这里,下一节,我们来介绍View Animation的。Tween animation,请持续关注,如有不足,欢迎讨论交流,共同进步

项目的github例子地址为:
https://github.com/litianyuan1111/AndroidAnimation

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:41472次
    • 积分:840
    • 等级:
    • 排名:千里之外
    • 原创:38篇
    • 转载:10篇
    • 译文:3篇
    • 评论:48条
    最新评论