Android中動畫效果有不少,包括ViewAnimator,逐幀動畫和補間動畫。今天,先來看看補間動畫中的四個基本的吧。
java
一:淡入淡出Alpha
ide
淡入淡出所呈現的效果表如今不一樣時刻畫面的透明度不一樣。
測試
具體實現:
動畫
(1)實例化AnimationSet對象spa
//實例化AnimationSet對象 AnimationSet animationSet = new AnimationSet(true); |
(2)實例化AlphaAnimation對象
對象
//實例化AlphaAnimation對象,參數爲(起始的透明度,終止的透明度) //1表示徹底不透明,0表示徹底透明 AlphaAnimation zAnimation = new AlphaAnimation(1, 0); |
(3)設置動畫時長
事件
//設置動畫時長 zAnimation.setDuration(3000); |
(4)添加AlphaAnimation對象到AnimationSet中
圖片
//添加AlphaAnimation對象到AnimationSet中 animationSet.addAnimation(zAnimation); |
(5)開啓動畫
get
//在iv上開啓動畫 iv.startAnimation(animationSet); |
二:旋轉Rotate
animation
旋轉所呈現的效果表如今畫面隨着旋轉角度的設置而進行的動畫效果。
具體實現:
(1)實例化AnimationSet對象
// 實例化AnimationSet對象 AnimationSet animationSet = new AnimationSet(true); |
(2)實例化RotateAnimation對象
// 實例化RotateAnimation對象,參數爲(旋轉的起始角度,旋轉的角度,旋轉中心的類型(這裏爲根據本身),0.5f表示x方向或者y方向的中心) RotateAnimation animation = new RotateAnimation(0, 360, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, (float) 0.5); |
(3)設置動畫時長
//設置動畫的執行時間 animation.setDuration(3000); |
(4)添加RotateAnimation對象到AnimationSet中
//添加動畫到AnimationSet上 animationSet.addAnimation(animation); |
(5)開啓動畫
//把動畫加載到控件上,並開啓動畫 iv.startAnimation(animationSet); |
三:縮放Scale
縮放所呈現的效果表如今畫面隨着動畫的播放,表現出不一樣的大小比例。
具體實現:
(1)實例化AnimationSet對象
// 實例化AnimationSet對象 AnimationSet animationSet = new AnimationSet(true); |
(2)實例化ScaleAnimation對象
// 參數:後四個參數表示縮放的中心爲圖片的中心點 //前四個參數:表示該動畫執行時,先從圖片通常的大小0.5f逐漸變化到整張圖片1表明的位置 若將1 變爲2 //則表示從一半的大小變化到2倍元圖片大小的位置。 // 實例化ScaleAnimation對象 ScaleAnimation animation = new ScaleAnimation(0.5f, 2, 0.5f, 2, Animation.RELATIVE_TO_SELF, 0.5f, Animation.RELATIVE_TO_SELF, 0.5f); |
(3)設置動畫時長
// 設置動畫時長 animation.setDuration(3000); |
(4)添加ScaleAnimation對象到AnimationSet中
// 該屬性的做用表示:設置動畫結束時的通知狀態,默認是回到原來初始的狀態,但設置以後,就會停留在動畫結束時的那一刻 animation.setFillAfter(true); // 將ScaleAnimation對象添加到AnimationSet上 animationSet.addAnimation(animation); |
(5)開啓動畫
// 開啓動畫 iv.startAnimation(animationSet); |
四:移動Translate
移動所呈現的效果表如今畫面隨着動畫的播放,畫面在屏幕上移動。
具體實現:
(1)實例化AnimationSet對象
// 實例化AnimationSet對象 AnimationSet animationSet = new AnimationSet(true); |
(2)實例化TranslateAnimation對象
// 實例化TranslateAnimation對象 // 參數:1 3 5 7表示的是參照點的類型,這裏爲畫面自身 // 參數:2 4 6 8表示的移動的值,1表示這張圖片的寬度高度範圍,0表示這張圖片從左上角開始移動 TranslateAnimation animation = new TranslateAnimation( Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 1, Animation.RELATIVE_TO_SELF, 0, Animation.RELATIVE_TO_SELF, 1); |
(3)設置動畫時長
// 設置動畫時長 animation.setDuration(3000); |
(4)添加TranslateAnimation對象到AnimationSet中
// 將TranslateAnimation添加到AnimationSet對象中 animationSet.addAnimation(animation); |
(5)開啓動畫
// 開啓動畫 iv.startAnimation(animationSet); |
上面的四種動畫均是在,主界面中的ImageView控件上的單擊事件中實現的,因爲結果不是很好捕捉,你們能夠自行測試一下。更多的效果,還得在規劃以後再實現哦。。。加油