(1)使用LayoutAnimation

所谓的布局动画,其实就是为ViewGroup添加显示动画效果,主要用过LayoutAnimationController来控制实现。LayoutAnimationController用于为一个Layout里面的控件,或者是一个ViewGroup里面的控件设置动画效果,可以在XML文件中设置,亦可以在Java代码中设置。

注意:布局动画是在android布局发生变化时添加动画效果,layout动画在每次布局发生变化的时候系统调用的一个预加载动画效果,使用layout动画可以让布局的变化过度看起来更自然

  1. 通过创建xml文件,其中list_anim在res/anim/list_anim.xml:

 <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@android:anim/accelerate_interpolator"
android:shareInterpolator="true" > <alpha
android:duration="1000"
android:fromAlpha="0.0"
android:toAlpha="1.0" /> </set>

  2. 为ListView的layoutAnimation创建list_anim_layout.xml:

 <?xml version="1.0" encoding="utf-8"?>
<layoutAnimation xmlns:android="http://schemas.android.com/apk/res/android"
android:delay="2"
android:animationOrder="normal"
android:animation="@anim/list_anim"/>
 <ListView
...
...4 android:layoutAnimation="@anim/list_anim_layout"/>
 // 在代码中实现列表动画
Animation animation = (Animation) AnimationUtils.loadAnimation(
mContext, R.anim.list_anim);
LayoutAnimationController lac = new LayoutAnimationController(animation);
lac.setDelay(0.4f); //设置动画间隔时间
lac.setOrder(LayoutAnimationController.ORDER_NORMAL); //设置列表的显示顺序
mListView.setLayoutAnimation(lac); //为ListView 添加动画

(2)通过 Adapter.getView() 方法

    通过getView(int position, View convertView, ViewGroup parent) 返回的 view,进行对其动画操作就可。

e.g. :水平向上移动并翻转360度。

 ObjectAnimator.ofFloat(convertView, "translationY", 400, 0).setDuration(1000).start();
ObjectAnimator.ofFloat(convertView, "rotationX", 360, 0).setDuration(1000).start();

参考:Layout动画:在android布局发生变化时添加动画效果

Android的Animation之LayoutAnimation使用方法

Android 从布局动画引入ListView滑动时,每一Item项的显示动画

最新文章

  1. 如何正确的做WEB端的压力测试
  2. C和指针 第十一章 动态内存分配
  3. AspNetPager 免费分页控件7.5.1版发布!
  4. 获取 AlertDialog自定义的布局 的控件
  5. RTB交接
  6. [LeetCode]题解(python):053-Maximum Subarray
  7. golang windows程序获取管理员权限(UAC ) via gocn
  8. Javascript参数传递中值和引用的一种理解
  9. listview 遇到问题java.lang.IndexOutOfBoundsException: Invalid index 0, size is 0
  10. 微信LazyMan笔试题的深入解析和实现
  11. 201521123052《Java程序设计》第4周学习总结
  12. IOS 使用cocoapods后无法导入头文件问题
  13. ajax 和jsonp 不是一码事
  14. request之LIstener监听器
  15. Spell checker using hash table
  16. Spring Boot Debug调试
  17. Angular 行内式依赖注入
  18. Lucene.Net 学习(搜索部分)(低要求,写给自己看)
  19. java中正则表达式常用方法
  20. 通过键盘控制改变物体transform值

热门文章

  1. angularJS 服务-$provide里factory、service方法
  2. java selenium后报错Element not found in the cache元素定位要重新赋值之前的定义
  3. 【POI word】使用POI实现对Word的读取以及生成
  4. linux 磁盘管理以及维护
  5. OC9_代理正向传值
  6. VBS基础篇 - RegExp 对象
  7. Oracle配置详解
  8. Android 分析工具 APKAnalyser
  9. Java基础知识强化之IO流笔记06:有return的情况下try catch finally的执行顺序
  10. mac brew 安装包下载失败解决
  11. JS继承六大模式
  12. 【Mysql基本知识整理】
  13. 第七节,Python的可视化包——matplotlib
  14. 【Python】Xml To Excel
  15. python数据探索
  16. [转][C#]Combobox 行高
  17. Java ClassLoad详解
  18. 给你的博客加上“Fork me on Github”彩带(转)
  19. Docker系列06:Linux修改docker镜像和容器数据存储位置
  20. 【Visual Installer】如何注册自已的文件类型