逐帧动画
含义:逐帧动画是把动画过程的每张静态图片
都收集起来,然后由Android来控制依次
显示这些静态图片,然后利用人眼视觉暂
留的原理,给用户造成动画的错觉。
逐帧动画的动画原理与放电影的原理完全一样。
1.定义逐帧动画---/res/drawable目录中
只要在<animation-list>元素中使用<item>子元素
定义动画的全部帧,并制定各帧的持续时间即可,
定义逐帧动画的语法格式:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="true|false">
<item android:drawable=""
android:duration="">
</animation-list>
其中android:oneshot控制该动画是否循环播放。
如果为true,动画将不会循环播放,
否则该动画将会循环播放
每一个item子元素添加一帧
注意:Android完成支持在Java代码中创建逐帧动画,
先创建AnimationDrawable对象,然后调用
addFrame(Drawable frame,int duration)向该
动画中添加帧,每调用一次addFrame方法,
就相当于添加一个item元素。


2.在android代码中使用逐帧动画的步骤
a)将逐帧动画的文件设置给某个组件的背景图片
b)获取AnimationDrawable动画对象
AnimationDrawable anim=
(AnimationDrawable)image.getBackground();
c)开始播放动画,逐帧动画默认是不播放的
anim.start()
d)停止动画

anim.stop();

3.代码编写:

先看效果图:


activity_main:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"     >    <Button        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="开始动画"         android:onClick="mystart"/>     <ImageView         android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:id="@+id/img"        android:background="<span style="color:#ff0000;">@drawable/my_anim</span>"        android:layout_centerInParent="true"/>         </RelativeLayout>

布局文件中的 my_anim是在res文件下新建了一个 drawable文件,在drawable新建了个 my_anim,代码如下:

<?xml version="1.0" encoding="utf-8"?><animation-list     xmlns:android="http://schemas.android.com/apk/res/android"     android:oneshot="false">    <!-- 静态图片 -->   <item android:drawable="@drawable/brownmonsters02"       android:duration="1000"></item>   <item android:drawable="@drawable/brownmonsters03"       android:duration="500"></item>   <item android:drawable="@drawable/brownmonsters04"       android:duration="800"></item>   <item android:drawable="@drawable/brownmonsters05"       android:duration="600"></item>   <item android:drawable="@drawable/brownmonsters19"       android:duration="600"></item></animation-list>
MainActivity中就几行代码:

public void mystart(View view) {// TODO Auto-generated method stub//播放逐帧动画AnimationDrawable drawable=(AnimationDrawable) iv.getBackground();drawable.start();}



更多相关文章

  1. android基本动画,代码构建动画
  2. Android(安卓)6.0 运行时权限处理完全解析
  3. android实现在横竖屏切换时页面信息不被重置的示例分享
  4. Android(安卓)Shape控件美化实现代码
  5. ViewDragHelper与Transition的示例代码
  6. 【译】Android:更好的自定义字体方案
  7. 利用Bundle实现Android(安卓)Activity间消息的传递
  8. android中的网络解析xml,json,html框架
  9. Android(安卓)数据库操作 以及命令行上操作sqlite

随机推荐

  1. android 实现左右拖动的网页焦点图
  2. Android Studio BUILD FAILED finished w
  3. Android Studio Button 美化
  4. 解决:Failed to fetch URL https://dl-ssl
  5. Your anti-virus program might be impac
  6. Android添加圆角渐变色按钮
  7. Android定制出厂默认输入法(其他设置类似
  8. Android 下载进度条, 自定义加载进度条,loa
  9. [置顶] Android技巧:ListView去掉默认橙黄
  10. android中清空一个表。类似truncate tabl