属性动画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小时内删除。
发表评论