分類(lèi):
? ? ?1. View Animation(補(bǔ)間動(dòng)畫(huà))
? ? ?2. Drawable Animation (幀動(dòng)畫(huà))
? ? ?3.?Property Animation(屬性動(dòng)畫(huà))
一. 幀動(dòng)畫(huà):
1. 創(chuàng)建/drawable文件下的animation-list資源:
<animation-list xmlns:android="http://schemas.android.com/apk/res/android">
? ? ? ? <item android:drawable="@drawable/a1" andorid:duration="100"/>
? ? ? ? <item android:drawable="@drawable/a2" android:duartion="100"/>
? ? ? ? <item android:drawable="@drawable/a3" android:duration="100"/>
</animation-list>
2. 開(kāi)啟幀動(dòng)畫(huà):
iv_anim.setImageResource(R.drawable.drawable_anim);
AnimationDrawable drawable = (AnimationDrawable) iv_anim.getDrawable();
drawable.start();
二. 補(bǔ)間動(dòng)畫(huà):
1. 類(lèi)型:
? ? translate(位移)檐嚣;scale(縮放)号杠;rotate(旋轉(zhuǎn))气堕;alpha()
????1> xml實(shí)現(xiàn)alpha
<alpha xmlns:android="http://schemas.android.com/apk/res/android" android:fromAlpha="1.0" ? ? ? ?// 原來(lái)的色彩废睦。
android:toAlpha="0.1" ? ? ? ? ? ?// 透明色。
android:duration="1000"
// 這個(gè)插值器先加速后減速。
android:interpolator="@android:anim/accelerate_decelerate_interpolator"/>
// 讓xml的動(dòng)畫(huà)執(zhí)行柠座。
Animation animation = AnimationUtils.loadAnimation(getContext(),R.anim.alpha_anim);
// 讓View 維持變化后的狀態(tài)。
iv_anim.setFillAfter(animation);
iv_anim.startAnimation(animation);
2> 代碼實(shí)現(xiàn)alpha:
Animation animation? ?= new AlphaAnimation(1,0);
// 設(shè)置動(dòng)畫(huà)的時(shí)間間隔
animation.setDuration(1000);
// 設(shè)置插值器片橡。
animation.setInterpolator(new AccelerateDecelerateInterpolator());
// 讓View 維持變化后的狀態(tài)妈经。
animation.setFillAfter(true);
iv_anim.startAnimation(animation);
3》xml實(shí)現(xiàn)translate動(dòng)畫(huà)
<translate xmlns:android="http://schemas.android.com/apk/res/android"
android:fromXDelta="0" ? ? ? ?// 0 代表View的初始位置。
// ?向右平移屏幕的一半捧书。
android:toXDelta="-50%p"
android:duration="2000"
// 加速插值器吹泡。
android:interpolator="@android:anim/accelerate_interpolator"/>
4》代碼實(shí)現(xiàn)位移動(dòng)畫(huà)
TranslateAnimation animation = newTranslateAnimation(
// 相對(duì)自己的View寬高的倍數(shù)。
Animation.RELATIVE_TO_SELF,0, ? ? ? ? ?// fromX
Animation.RELATIVE_TO_SELF, 0, ? ? ? ?// toX;
Animation.RELATIVE_TO_SELF,0, ? ? ? ? // fromY
Animation.RELATIVE_TO_SELF,1); ? ? ? ?// toY
5》xml實(shí)現(xiàn)Scale
<scale xmlns:android="http://schemas.android.com/apk/res/android" android:fromXScale="1"
android:toXScale="2"
android:fromYScale="1"
android:toYScale="2"
android:pivotX="50%"
android:pivotY="50%"
android:duration="5000"/>
6》代碼實(shí)現(xiàn)縮放動(dòng)畫(huà)
//ScaleAnimation animation = new ScaleAnimation(1,(float) 0.5,1,(float) 0.5);
//pivotX(浮點(diǎn)型) pivotY(浮點(diǎn)型)表示控件圍繞哪個(gè)點(diǎn)進(jìn)行縮放经瓷,默認(rèn)是圍繞坐標(biāo)原點(diǎn)爆哑。(0,0) 這兩個(gè)值又有三種類(lèi)型//
ScaleAnimation animation = new ScaleAnimation(1,(float) 0.5,1,(float) 0.5,(float) 800,(float) 800);
//ABSOLUTE:絕對(duì)值
//RELATIVE_TO_SELF:相對(duì)于自己
//RELATIVE_TO_PARENT:相對(duì)于父控件
ScaleAnimation animation = new ScaleAnimation(1,(float) 0.2,1,(float) 0.2, Animation.RELATIVE_TO_SELF,(float)0.5,Animation.RELATIVE_TO_SELF,1);
animation.setDuration(1000);
animation.setFillAfter(true);
iv_anim.startAnimation(animation);
7》xml實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫(huà):
<rotate xmlns:android="http://schemas.android.com/apk/res/android" android:fromDegrees="0"
android:toDegrees="90"
android:pivotY="50%"
android:pivotX="0"
android:duration="2000"/>
8》代碼實(shí)現(xiàn)旋轉(zhuǎn)動(dòng)畫(huà):
RotateAnimation animation =new RotateAnimation(0,90,0,0);
animation.setFillAfter(true);
animation.setDuration(2000);
iv_anim.startAnimation(animation);