Android補間動畫集合

來源:互聯網
上載者:User

標籤:

 

安卓提供的Api四種動畫:

 

  動畫常用API:

1 setDuration(3000);  //動畫播放時間毫秒2 setFillAfter(true);    //顯示動畫結束時View的樣子,動畫結束時View長啥樣,之後的顯示就長啥樣3 setRepeatCount(5);    //重複播放次數

  淡入淡出:AlphaAnimation

   最簡單的動畫,透明到顯示或者顯示到透明的動畫.

1     public void alpha(View view){2         float fromAlpha = 0.1f;    //3         float toAlpha = 1f;4         AlphaAnimation alpha = new AlphaAnimation(fromAlpha, toAlpha);5         alpha.setDuration(3000);    //動畫期間6         alpha.setRepeatCount(5);    //重複播放次數7         iv.startAnimation(alpha);8     }

  比例縮放:ScaleAnimation

   這種動畫還是挺好用的,掌握好縮放尺寸可以了,當然它也是有錨點的.

 1     public void scale(View view){ 2         //這4個值,0表示縮小到沒有,1表示正常,比1大就是放大 3         float fromX = 0.1f;    //動畫開始時x的縮放尺寸 4         float toX = 2.0f;        //動畫結束時x的縮放尺寸 5         float fromY = 0.1f;    //動畫開始時y的縮放尺寸 6         float toY = 2.0f;        //動畫結束時y的縮放尺寸 7         //設定錨點的四個參數 8         int pivotXType = Animation.RELATIVE_TO_SELF;    //x相對於物件自己的 9         float pivotXValue = 0.5f;    //取值範圍0~1之間,相對的x軸位置,相對於物件就是物件的寬度中間,相對於螢幕就是螢幕中間10         int pivotYType = Animation.RELATIVE_TO_SELF;    //y相對於物件自己的11         float pivotYValue = 0.5f;//取值範圍0~1之間,相對的y軸位置,相對於物件就是物件的寬度中間,相對於螢幕就是螢幕中間12         ScaleAnimation scale = new ScaleAnimation(fromX, toX, fromY, toY, pivotXType, pivotXValue, pivotYType, pivotYValue);13         scale.setDuration(3000);14         scale.setFillAfter(true);    //顯示動畫結束時View的樣子,上面是2.0f倍放大,那麼顯示就會是那麼大15         iv.startAnimation(scale);16     }

 

  錨點旋轉:RotateAnimation

  這種動畫比較容易控制的,只要想清楚錨點的四個參數,很容易掌握.

 1     public void rotate(View view){ 2         float fromDegrees = 0;        //動畫開始的角度 3         float toDegrees = -360;        //動畫結束時旋轉的角度(可以大於360)正數順時針旋轉,負數逆時針旋轉 4         //設定錨點的四個參數 5         int pivotXType = Animation.RELATIVE_TO_SELF;    //x相對於物件自己的 6         float pivotXValue = 0.5f;    //取值範圍0~1之間,相對的x軸位置,相對於物件就是物件的寬度中間,相對於螢幕就是螢幕中間 7         int pivotYType = Animation.RELATIVE_TO_SELF;    //y相對於物件自己的 8         float pivotYValue = 0.5f;//取值範圍0~1之間,相對的y軸位置,相對於物件就是物件的寬度中間,相對於螢幕就是螢幕中間 9         RotateAnimation rotate = new RotateAnimation(fromDegrees, toDegrees, pivotXType, pivotXValue, pivotYType, pivotYValue);10         rotate.setDuration(3000);11         iv.startAnimation(rotate);12     }

 

 

  位移:

  位移動畫,用到比較多,比如在手機衛士程式鎖中,點擊一個應用加鎖,就把這個應用View向又移動消失...

 

 1     public void translate(View view){ 2         int fromXType = Animation.RELATIVE_TO_SELF;    //x軸相對的物件 3         float fromXValue = 0f;    //從相對於物件x軸x位置 4         int toXType = Animation.RELATIVE_TO_PARENT; //x軸移動相對物 5         float toXValue = -1f; //x移動 6         int fromYType = Animation.RELATIVE_TO_SELF; //y軸相對的物件 7         float fromYValue = 0f;    //從相對於物件y軸y位置 8         int toYType    = Animation.RELATIVE_TO_PARENT;    //y軸移動相對物 9         float toYValue = 0f;    //y移動10         TranslateAnimation translate = new TranslateAnimation(fromXType, fromXValue, toXType, toXValue, fromYType, fromYValue, toYType, toYValue);11         translate.setDuration(3000);12         iv.startAnimation(translate);13     }

 

 

 

動畫集合:AnimationSet

  偶爾做一些好玩的動畫還是可以的

 

 1     public void animationSet() { 2         //建立動畫 3         AlphaAnimation alpha = new AlphaAnimation(0.1f,1f); 4         alpha.setDuration(3000); 5         alpha.setRepeatCount(3); 6          7         RotateAnimation rotate = new RotateAnimation(0f,360,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f); 8         rotate.setDuration(3000); 9         rotate.setRepeatCount(3);10         11         ScaleAnimation scale = new ScaleAnimation(1f,0.1f,1f,0.1f,Animation.RELATIVE_TO_SELF,0.5f,Animation.RELATIVE_TO_SELF,0.5f);12         scale.setDuration(3000);13         scale.setRepeatCount(3);14         15         TranslateAnimation translate = new TranslateAnimation(Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_PARENT,-1f,Animation.RELATIVE_TO_SELF,0f,Animation.RELATIVE_TO_PARENT,0f);16         translate.setDuration(3000);17         translate.setRepeatCount(3);18         19         AnimationSet set = new AnimationSet(false);    //建立動畫集合,false是讓每個動畫參數獨立20         //把動畫加入集合21         set.addAnimation(alpha);    22         set.addAnimation(rotate);23         set.addAnimation(scale);24         set.addAnimation(translate);25         iv.startAnimation(set);    //控制項播放動畫26     }

 

Android補間動畫集合

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.