属性动画ValueAnimator用法
用法举例:
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 @Override 24 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 @Override 39 public void onAnimationStart(Animator arg0) { 40 41 } 42 43 @Override 44 public void onAnimationRepeat(Animator arg0) { 45 46 } 47 48 @Override 49 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 @Override 60 public void onAnimationCancel(Animator arg0) { 61 62 } 63 }); 64 65 animator.setDuration(200);// 动画时间 66 animator.start();// 启动动画 67 }
运行效果图:
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 理解Rust引用及其生命周期标识(下)
· 从二进制到误差:逐行拆解C语言浮点运算中的4008175468544之谜
· .NET制作智能桌面机器人:结合BotSharp智能体框架开发语音交互
· 软件产品开发中常见的10个问题及处理方法
· .NET 原生驾驭 AI 新基建实战系列:向量数据库的应用与畅想
· C# 13 中的新增功能实操
· Ollama本地部署大模型总结
· 2025成都.NET开发者Connect圆满结束
· langchain0.3教程:从0到1打造一个智能聊天机器人
· 用一种新的分类方法梳理设计模式的脉络