博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android-Animations的使用大全之二:Frame Animation和其他
阅读量:5127 次
发布时间:2019-06-13

本文共 3141 字,大约阅读时间需要 10 分钟。

 

5 Frame-By-Frame Animations的使用方

1 在res/drawable中创建一个xml文件,定义Animation的动画播放序列 anim_nv.xml

 

Xml代码  
  1. <animation-list xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:oneshot="false">  
  3.     <item android:drawable="@drawable/nv1"  
  4.         android:duration="500" />  
  5.     <item android:drawable="@drawable/nv2"  
  6.         android:duration="500" />  
  7.     <item android:drawable="@drawable/nv3"  
  8.         android:duration="500" />  
  9.     <item android:drawable="@drawable/nv4"  
  10.         android:duration="500" />  
  11. </animation-list>  

2 为ImageView设置背景资源

 

Java代码  
  1. imageView.setBackgroundResource(R.drawable.anim_nv);  

3 通过ImageView得到AnimationDrawable

 

Java代码  
  1. AnimationDrawable animationDrawable = (AnimationDrawable) imageView.getBackground();  

3 执行动画

 

Java代码  
  1. animationDrawable.start();  

 

Frame-By-Frame Animations的代码使用方法

//实例化AnimationDrawable对象        frameAnimation = new AnimationDrawable();                /*装载资源*/        //这里用一个循环装载所有名字类似的资源        //如"a1...........15.png"的图片        for(int i = 1; i <= 15; i++){            int id = getResources().getIdentifier("a" + i, "drawable", mContext.getPackageName());            //此方法返回一个可绘制的对象与特定的资源ID相关联             mBitAnimation = getResources().getDrawable(id);            /*为动画添加一帧*/            //参数mBitAnimation是该帧的图片            //参数500是该帧显示的时间,按毫秒计算            frameAnimation.addFrame(mBitAnimation, 500);        }        /*上边用到了Resources的getIdentifier方法 方法返回一个资源的唯一标识符,如果没有这个资源就返回0         * 0不是有效的标识符,在说说这个方法几个参数的含义         * 第一个 就是我们的资源名称了。         * 第二个 就是我们要去哪里找我们的资源 我们的图片在drawable 下 所以为drawable         * 第三个 我们用了Context的getPackageName返回应用程序的包名         * */                //设置播放模式是否循环播放,false表示循环,true表示不循环        frameAnimation.setOneShot(false);                //设置本类将要显示的这个动画        this.setBackgroundDrawable( frameAnimation );

 

 

6 LayoutAnimationController的使用方法(与ListView结合使用为例)

什么是LayoutAnimationController

1 LayoutAnimationController用于为一个layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果

2 每一个控件都有相同的动画效果

3 这些控件的动画效果在不同的时间显示出来

4 LayoutAnimationController可以在xml文件中设置,也可以在代码中设置

 

在XML中使用LayoutAnimaionController

1 在res/anim文件夹中创建一个文件,名为list_anim_layout.xml

 

Xml代码  
  1. <layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"  
  2.     android:delay="0.5"  
  3.     android:animationOrder="random"  
  4.     android:animation="@anim/list_anim" />  

注意到list_anim这个xml文件,其中配置了动画效果,也就是一个动画配置文件(见3中)

<set>

<alpha...>

</set>

2 在布局文件中为ListView添加如下配置(就是在<listview>标签中添加一个属性)

android:layoutAnimation="@anim/list_anim_layout"

 

在代码中使用LayoutAnimationController

 

Java代码  
  1. 1 创建一个Animation对象:  
  2.     可以通过装载xml,也可以直接使用Animation的构造函数创建Animation对象  
  3. 2 创建LayoutAnimationController对象  
  4.     LayoutAnimationController lac=new LayoutAnimationController(animation);  
  5. 3 设置控件显示顺序  
  6.     lac.setOrder(LayoutAnimationController.ORDER_NORMAL);  
  7. 4 为ListView设置LayoutAnimationController属性:  
  8.     listView.setLayoutAnimation(lac);  

 

7 AnimationListener的使用方法

什么是AnimationListener

1 Animation是一个监听器

2 该监听器在动画执行的各个阶段会得到通知,从而调用相应的方法

3 主要包含下面的三个方法

onAnimationEnd(Animation animation)

onAnimationRepeat(Animation animation)

onAnimationStart(Animation animation)

 

使用方法:

animation.setAnimationListener(new XxxAnimationListener);

其中XxxAnimationListener继承AnimationListene

在其中实现三个onXXX方法

转载于:https://www.cnblogs.com/TseChiHoi/archive/2012/10/19/2690365.html

你可能感兴趣的文章
codeforces 869B The Eternal Immortality
查看>>
Pycharm5注册方式
查看>>
mysql 导出表结构和表数据 mysqldump用法
查看>>
查看电脑连过的WiFi密码
查看>>
day02编程语言,Python语言介绍,Python解释器安装,环境变量,Python代码执行,pip,应用程序使用文件的三步骤,变量,变量的三大组成,比较,pycharm...
查看>>
初学libcurl
查看>>
Tarjan学习笔记
查看>>
vue组件编译原理
查看>>
MYSQL 5.6修改密码
查看>>
centos 6.5 升级到 python2.7
查看>>
http请求头和响应头的含义
查看>>
2016.3.24 OneZero站立会议
查看>>
软件工程的理解
查看>>
Node笔记四
查看>>
网络比总线差多了 除非是真正的mpp并行架构
查看>>
MVC中使用Action全局过滤器出现:网页无法正常运作 将您重定向的次数过多。解决办法...
查看>>
hibernate06--参数的绑定
查看>>
调用 js 生成图片二维码
查看>>
页面前端的水有多深?再议页面开发
查看>>
将一般的数值转换为金额格式(分隔千分位和自动增加小数点)
查看>>