博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
属性动画ValueAnimator用法
阅读量:6420 次
发布时间:2019-06-23

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

用法举例:

1. ValueAnimator animator = ValueAnimator.ofInt(0,100);//定义animator

2. animator.addUpdateListener//添加更新监听事件

3. animator.setDuration//设置属性动画时长

4. animator.start//开启属性动画

报错说明api版本太低,要导入nineold jar包

也许是开发者他女儿9岁了的时候开发出来的兼容包,哈哈

nineoldandroids-2.4.0.jar

 

java代码:

1   private boolean isOpen = false;// 标记安全描述开关状态,默认关 2  3     // 打开或者关闭安全描述信息(如果是打开状态就关闭,如果是关闭状态就打开) 4     // 导入jar包: nineoldandroids-2.4.0.jar 5     protected void toggle() { 6         ValueAnimator animator = null; 7         if (isOpen) { 8             // 关闭 9             isOpen = false;10             // 属性动画11             animator = ValueAnimator.ofInt(mDesHeight, 0);// 从某个值变化到某个值12         } else {13             // 开启14             isOpen = true;15             // 属性动画16             animator = ValueAnimator.ofInt(0, mDesHeight);17         }18 19         // 动画更新的监听20         animator.addUpdateListener(new AnimatorUpdateListener() {21 22             // 启动动画之后, 会不断回调此方法来获取最新的值23             @Override24             public void onAnimationUpdate(ValueAnimator animator) {25                 // 获取最新的高度值26                 Integer height = (Integer) animator.getAnimatedValue();27 28                 System.out.println("最新高度:" + height);29 30                 // 重新修改布局高度31                 mParams.height = height;32                 llDesRoot.setLayoutParams(mParams);33             }34         });35 36         animator.addListener(new AnimatorListener() {37 38             @Override39             public void onAnimationStart(Animator arg0) {40 41             }42 43             @Override44             public void onAnimationRepeat(Animator arg0) {45 46             }47 48             @Override49             public void onAnimationEnd(Animator arg0) {50                 // 动画结束的事件51                 // 更新小箭头的方向52                 if (isOpen) {53                     ivArrow.setImageResource(R.drawable.arrow_up);54                 } else {55                     ivArrow.setImageResource(R.drawable.arrow_down);56                 }57             }58 59             @Override60             public void onAnimationCancel(Animator arg0) {61 62             }63         });64 65         animator.setDuration(200);// 动画时间66         animator.start();// 启动动画67     }

运行效果图: 

 

附加:安卓动画总结

转载于:https://www.cnblogs.com/johnsonwei/p/5672122.html

你可能感兴趣的文章
再不懂区块链,你就OUT了!
查看>>
教你玩转自定义View—手撸一个倒计时控件如此简单
查看>>
『翻译』Node.js 调试
查看>>
我的iOS开发之路总结(更新啦~)
查看>>
Java NIO之拥抱Path和Files
查看>>
微信原图泄露的只能是 Exif ,你的隐私不在这!!!
查看>>
微信小程序教学第三章(含视频):小程序中级实战教程:列表篇-页面逻辑处理...
查看>>
页面间通信与数据共享解决方案简析
查看>>
Swift 中 Substrings 与 String
查看>>
作为一个开源软件的作者是一种什么样的感受?
查看>>
移动端适配知识你到底知多少
查看>>
Java基础笔记16
查看>>
TiDB 在 G7 的实践和未来
查看>>
重新认识javascript对象(三)——原型及原型链
查看>>
小学生学“数学”
查看>>
【Vue】组件使用之参数校验
查看>>
FastDFS蛋疼的集群和负载均衡(十七)之解决LVS+Keepalived遇到的问题
查看>>
深入剖析Redis系列(二) - Redis哨兵模式与高可用集群
查看>>
上班第一天的BUG居然是chrome翻译功能导致的
查看>>
Android 用于校验集合参数的小封装
查看>>