属性动画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
5protected void toggle() {
6        ValueAnimator animator = null;
7if (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
24public void onAnimationUpdate(ValueAnimator animator) {
25// 获取最新的⾼度值
26                Integer height = (Integer) AnimatedValue();
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
39public void onAnimationStart(Animator arg0) {
40
41            }
42
43            @Override
44public void onAnimationRepeat(Animator arg0) {
45
46            }
47
48            @Override
49public void onAnimationEnd(Animator arg0) {
50// 动画结束的事件
51// 更新⼩箭头的⽅向
html animation属性52if (isOpen) {
53                    ivArrow.setImageResource(R.drawable.arrow_up);
54                } else {
55                    ivArrow.setImageResource(R.drawable.arrow_down);
56                }
57            }
58
59            @Override
60public void onAnimationCancel(Animator arg0) { 61
62            }
63        });
64
65        animator.setDuration(200);// 动画时间
66        animator.start();// 启动动画
67    }
运⾏效果图:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。