屬性動畫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     }

運行效果圖: 

 

附加:安卓動畫總結http://www.cnblogs.com/johnsonwei/p/5705659.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM