Android ApiDemo学习(四)Views——7 Layout Animation
来源:互联网 发布:淘宝最好的推广方法 编辑:程序博客网 时间:2024/05/21 06:45
共有7个例子。
- grid fade
效果:网格中的item从上到下、从左至右,依次从暗到亮显示出来。
代码:布局xml文件中,定义了gridview的animation属性为layout_grid_fade。上面的所有动画效果都是通过这句话添加上去的。这个属性定义了viewgroup第一次加载上去的动画,注意,这个动画是整个layout的动画。即整个gridview的动画。而不是单个item的动画。那单个item的动画效果在哪里呢?我们看这个layout_grid_fade.xml:
layout_grid_fade.xml中定义了三个属性:
- rowDelay:行延迟时间比率
- directionPriority:行优先还是列优先。比如这里定义这个属性值为column,那么列优先。
- animation:这个animation就是grid里单个item的动画了。这里定义为fade。
fade.xml为grid的每个cell定义动画,我们看这个文件:
- alpha:表示这个动画实现的是透明度的改变。即cell的明暗变化
- interpolator:插值器。即变化的加速或减速。这里定义为加速显示
- fromAppha toAlpha:起始透明度和结束透明度。动画的开头和结束两个关键帧
- duration:动画持续的时间
- list cascade
效果:listview中item从上到下依次展开。
代码:看java代码,LayoutAnimation使用LayoutAnimationController来定义一个Viewgroup里item的动画,比如本例中listview的item。在这个LayoutAnimationController中添加了两个动画,一个是AlphaAnimation,透明度从0到1;另一个是TranslateAnimation,y方向上从-1到1。可以改变duration设置其时间长一些来看到效果。
从本例和上例的比较:layout animation有两种animation,第一种是整个viewgroup的animation,在viewgroup的布局文件中使用layoutAnimition属性定义,定义layout内部item的动画之间的延迟时间、优先级和item动画id等;第二种是单个item的animation,可以在viewgroup的动画xml文件中使用animation属性定义,或者在java代码中使用LayoutAnimationController,定义单个item的动画效果。
- reverse order
本例显示listview的item倒序显示。和第一个例子类似。先使用layoutAnimation定义整个listview的动画定义文件为layout_bottem_to_top_slide.xml。在这个xml文件中,定义了单个item的animation为slide_right。关键句是animationOrder属性,这个属性可以定义为normal正序、reverse倒序、random随机。
- randomize
与上例一样示范item动画的显示顺序。上例是listview倒序,本例为gridview随机顺序。
- grid direction
与第一例类似,区别是:定义layoutAnimation时,定义为行优先。且增加direction属性为从下向上、从右到左。
- wave scale
看定义单个item动画的wave_scale文件:三个动画效果放一起,分别是alpha、scale、scale。
alpha:透明度从0到1
scale1:从0.5倍放大到1.5倍
scale2:从1.5被缩小为正常1倍
- nested animation
先看整个例子的布局文件layout_animation.xml,定义table中的四行的layoutAnimation分贝为layout_animation_row_right_slide和layout_animation_row_right_slide. 注意,TalbeLayout是一个groupview,而TableLayout的子标签TableRow也是groupview,因此可以单独对TableRow定义LayoutAnimation。
layout_animation_row_left_slide:定义单个item动画为slide_left
layout_animation_row_right_slide:定义单个item动画为slide_right
这7个例子,都是view下的layoutanimation,可以看到animation下也有layoutanimation。这是两种不同的animation。读者可自行比较一下,最后animation会总结这两种layoutanimation的区别。
- Android ApiDemo学习(四)Views——7 Layout Animation
- Android ApiDemo学习(四)Views——1 animation
- Android ApiDemo学习(四)Views——2 autocomplete
- Android ApiDemo学习(四)Views——5 Grid
- Android ApiDemo学习(五)Animation——7 Layout Animations
- Android ApiDemo学习(五)Animation—— 4 Default Layout Animation
- Android ApiDemo学习(四)Views——3 Buttons、Chronometer、Controls、Custom、DateWidget
- Android ApiDemo学习(四)Views—— 4 Expandable Lists、Focus、Gallery
- Android ApiDemo 学习(四)Views——6 Imagebutton、ImageSwitcher、ImageView
- Android ApiDemo学习(五)Animation—— 2 Cloning
- Android ApiDemo学习(五)Animation—— 3 CustomEvaluator
- Android ApiDemo学习(五)Animation—— 5 Events
- Android ApiDemo学习(五)Animation—— 6 Hide-Show Animation
- APIDemo学习笔记——Android上几种简单的Animation使用方法(二)
- APIDemo学习笔记——Android上几种简单的Animation使用方法(一)
- Android ApiDemo学习(五)Animation—— 1 Bouncing Balls
- APIDemo学习笔记——Android上几种简单的Animation使用方法(一)
- APIDemo学习笔记——Android上几种简单的Animation使用方法(二)
- Extjs嵌套数据类型定义和显示 (一)
- 用python的soaplib模块实现WSDL和SOAP协议的web service
- 当php配置文件中魔术引号方法没有开启时的解决方案
- 计算机端口及设置
- flush让页面分块,逐步呈现
- Android ApiDemo学习(四)Views——7 Layout Animation
- LAST_QUERY in Form and OAF Page
- Linux php的运行模式与其相关名词术语
- Algorithms,part1 week1
- lucene管理IndexReader和IndexWriter的最佳实践
- C++和Objective-C混编(官方文档翻译)
- 修复metasploit v4.2.0 ,启用db_autopwn命令问题(t00ls)
- 【Eclipse】使用的插件
- 客户端使用 pl/sql developer 无法以sys用户登录