Android-Animations的使用大全之二:Frame Animation和其他

Android-Animations的使用大全之一:Tweened Animations详解

 

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/434191.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

wireshark分析SIP协议——注册

SIP 是VOIP目前非常流行的一种协议。有关协议的详细原理参照相关文档。本文通过wireshark抓包分析SIP user agent&#xff08;用户代理客户机&#xff0c;uac&#xff09;与SIPserve之间的交互过程&#xff0c;在拨打SIP电话之前&#xff0c;先需要搭建相应的环境&#xff1a;根…

micropython仿真器_Micropython教程之TPYBoard DIY超声波测距仪实例演示

1.实验目的 1. 学习在PC机系统中扩展简单I/O?接口的方法。 2. 进一步学习编制数据输出程序的设计方法。 3. 学习超声波模块的测距原理。 4. 学习LCD5110接线方法 5. 学习TPYboard控制超声波模块测距。(萝卜学科编程教育tpyboard。com) 2.所需元器件 超声波模块一个 TPYBoard板…

monotouch在ipad中的实例应用--显示图像和文字

本节主要讲述在苹果环境中使用monodevelop开发ipad的一个实例&#xff0c;具体操作如下 1、新建项目 选择monotouch--ipad--Empty project 命名为iPad01 2、添加新文件&#xff0c;选择monotouch--ipad view&#xff0c;命名为showView&#xff0c;这样会在项目中多出来三个文件…

MTU MSS 详解记录

先学习理解一下帧的封装格式&#xff1a; 需要注意的是&#xff0c;区别两种帧封装格式&#xff1a;802标准帧和以太网帧1&#xff0c;在802标准定义的帧格式中&#xff0c;长度字段是指它后续数据的字节长度&#xff0c;但不包括C R C检验码。RFC 1042&#xff08;IEEE 802&a…

通达oa 不允许从该ip登陆_通达OA-命令执行漏洞复现

通达OA-命令执行一、环境安装文件&#xff1a;链接:https://pan.baidu.com/s/1Y78Zs-7Igi4MRE0J_Dp-dQ 提取码:2b3i二、漏洞验证任意文件上传漏洞 /ispirit/im/upload.php本地文件包含漏洞 /ispirit/interface/gateway.php这两个路径不需要登录认证。burp抓包修改数据包上传文件…

mysql数据转存到时序数据库_干货丨如何高速迁移MySQL数据到时序数据库DolphinDB...

DolphinDB提供了两种导入MySQL数据的方法&#xff1a;ODBC插件和MySQL插件。我们推荐使用MySQL插件导入MySQL数据&#xff0c;因为它的速度比ODBC导入更快&#xff0c;导入6.5G数据&#xff0c;MySQL插件的速度是ODBC插件的4倍&#xff0c;并且使用MySQL插件无需任何配置&#…

优秀程序员的45个习惯

摘要&#xff1a;值得打印出来贴在办公室墙上学习实践的箴言。 优秀来自好的习惯。怎样成为优秀的开发人员&#xff1f;图灵公司最近热销的《高效程序员的45个习惯》一书给出了很好的解答&#xff0c;非常值得一读。 这本书的英文原版荣获了有软件奥斯卡之称的Jolt生产效率大奖…

java 类型转换_java中的基本数据类型的转换

本文参考了如下两篇文章:Java中&#xff0c;经常可以遇到类型转换的场景&#xff0c;从变量的定义到复制、数值变量的计算到方法的参数传递、基类与派生类间的造型等&#xff0c;随处可见类型转换的身影。Java中的类型转换在Java编码中具有重要的作用。首先&#xff0c;来了解下…

Activity的四种加载模式(转载)

在多Activity开发中&#xff0c;有可能是自己应用之间的Activity跳转&#xff0c;或者夹带其他应用的可复用Activity。可能会希望跳转到原来某个Activity实例&#xff0c;而不是产生大量重复的Activity。这需要为Activity配置特定的加载模式&#xff0c;而不是使用默认的加载模…

centos 安装tomcat_简单介绍Linux配置mysql,tomcat,Nginx 开机自启动的几个方式

概述一般我们打算把一些服务&#xff0c;例如 mysql&#xff0c;tomcat&#xff0c;Nginx设置开机自启动的话一般是有三四种方式来实现&#xff0c;下面以mysql&#xff0c;tomcat&#xff0c;Nginx做例子来演示。一、使用定时任务 cron 命令创建定时任务来运行 .sh 脚本。在sh…

java 永久代_Java新生代、老生代和永久代详解

前言: 还是面试经常被q&#xff0c;小结一下image.pngJVM中的堆一般分为三部分&#xff0c;新生代、老年代和永久代。1 新生代主要是用来存放新生的对象。一般占据堆空间的1/3&#xff0c;由于频繁创建对象&#xff0c;所以新生代会频繁触发MinorGC进行垃圾回收。新生代分为Ede…

java算法:冒泡排序

java算法&#xff1a;冒泡排序 冒泡排序&#xff1a;不断遍历文件&#xff0c;交换倒序的相邻元素&#xff0c;直到文件排好顺序。冒泡排序的主要优点是容易实现&#xff0c;冒泡排序通常会比选择排序、插入排序慢。 如&#xff0c;对EXAMPLE 字母进行排序&#xff1a; E X…

strlwr,strupr函数

函数原型&#xff1a;extern char *strlwr(char *str) extern char *strupr(char *s) 参数说明&#xff1a;str为要转换的字符串。 所在库名&#xff1a;#include <string.h> 函数功能&#xff1a;将字符串str中的大(小)写字母转换成为小(大)写字母&#xff…

python中的类怎样理解_理解Python数据类:Dataclass fields 的概述(下)

原标题 Understanding Python Dataclasses?—?Part 2 &#xff0c;作者为 Shikhar Chauhan 。这是 Python 最新的 Dataclasses 系列的第二部分内容。在第一部分里&#xff0c;我介绍了 dataclasses 的一般用法。这篇主要介绍另一个特征&#xff1a;dataclasses.field。我们已…

西部数码域名解析到阿里云_西部数码云主机好吗 稳定性如何

随着云计算技术的不断发展&#xff0c;我国云计算市场的经济效益也在日渐扩大&#xff0c;各个云服务商之间的竞争异常激烈。在这种环境下&#xff0c;备受人们关注的云服务企业主要呈现两大类&#xff0c;一是互联网巨头背景的阿里云、腾讯云等&#xff1b;二是以西部数码为代…

mysql8.0.22安装步骤图解_MySQL server 5.5的安装 步骤图解

作者&#xff1a;极客小俊 一个专注于web技术的80后我不用拼过聪明人&#xff0c;我只需要拼过那些懒人 我就一定会超越大部分人!知乎极客小俊&#xff0c;官方首发原创文章还有人用老版本的mysql 5.5吗&#xff1f;&#xff1f; 如果有的话 并且不会安装的小白看下面的步骤图吧…

win7下ffmpeg编译动态链接库整理

1.写在ffmpeg编译前 关于ffmpeg的编译过程google一搜&#xff0c;一大堆&#xff0c;ffmpeg编译真的有那么难么&#xff1f;在我编译成功后回头来看&#xff0c;网上的资料过多&#xff0c;反而使自己走了很多的弯路。即便有些楼主亲自测试后编译成功了&#xff0c;由于受机器…

wzctool工具使用详解

Wzctool是WinCE一个比较小巧实用的无线Wifi配置小工具&#xff0c;借助命令行调用该程序能够非常简单地设置wifi的相应参数&#xff0c;能够在一定程度上避免书写代码的繁琐之举。 这个工具是在编译系统的时候&#xff0c;添加Wifi组件后自动生成的。如果用户直接进到Platform…

spring boot 入门_玩转springboot2.x之快速入门开山篇

Spring Boot简介Spring Boot的目的在于创建和启动新的基于Spring框架的项目。Spring Boot会选择最适合的Spring子项目和第三方开源库进行整合。大部分Spring Boot应用只需要非常少的配置就可以快速运行起来。Spring Boot是伴随着Spring4.0诞生的&#xff0c;旨在简化开发。Spri…

python 元组 列表 字典区别_python编程:常用的数据结构之字典的方法总结,和列表和元组区别...

字典是一种键&#xff1a;值的形式&#xff0c;我们前面分享的文章学习了列表[],元祖&#xff08;&#xff09;&#xff0c;字典是由{}引起来的&#xff0c;列表的键对应的是列表的下标&#xff0c;而字典的值对应的是字典的键&#xff0c;我们可以通过字典的键来获取字典的值 …