標籤:
1、補間動畫(透明漸層、平移、旋轉、縮放、組合)
方法一:通過xml檔案設定
1-1:建立:res/anim
1-2:java代碼寫調用
Animation a = AnimationUtils.loadAnimation(this, R.anim.alpha);
img.startAnimation(a);
1-3:設定動畫
1-3-1:透明漸層:alpha(透明度設定【0-1】)
開始的透明度:android:fromAlpha="0"
結束的透明度 : android:toAlpha="1"
花費的時間:毫秒android:duration="1000"
1-3-2:平移:translate
起始點的x、y的座標值:android:fromXDelta="0"、android:fromYDelta="0"
結束點的x、y的座標值:android:toXDelta="200"、android:toYDelta="200"
花費的時間:毫秒
保持最後的移動狀態:android:fillAfter="true"
重複次數:android:repeatCount="3"
重複的效果:restart,reverse:android:repeatMode="restart"
1-3-3:旋轉:rotate
起始角度:android:fromDegrees="0"
旋轉角度:【-,+】android:toDegrees="-720"
花費的時間:毫秒
中心點:
1.固定值:android:pivotX="500"、android:pivotY="500"
2.相對自身的設定:android:pivotX="50%"、android:pivotY="50%"
3.相對父控制項的設定:android:pivotX="50%p"、android:pivotY="50%p"(p代表parent)
1-3-4:縮放:scale
起始x,y的倍數:android:fromXScale="0"、android:fromYScale="0"
結束x,y的倍數:android:toXScale="2"、android:toYScale="2"
花費的時間:毫秒
1-3-5:組合: set
在每一個動畫中添加startOffset,然後設定它們的先後順序
android:startOffset="3000"
方法二:通過代碼設定
AnimationSet set = new AnimationSet(true);
直接寫相應的屬於性
AlphaAnimation alpha = new AlphaAnimation(1f, 0f);
alpha.setDuration(1000);
set.addAnimation(alpha);
iV.startAnimation(set);
或者:
TranslateAnimation m = new TranslateAnimation(fromXType,fromXValue,toXType,toXValue,fromYType,fromYValue,toYType,toYValue);
fromXType:絕對的動畫類型(1或是2)
m.setDuration(1500);
set.addAnimation(m);
set.setStartOffset(800);
set.setFillAfter(true);
image.startAnimation(anim1);
也可以根據相應的屬性寫不同的代碼
AlphaAnimation alpha = new AlphaAnimation(0, 0.8f);
alpha.setDuration(1000);
img.startAnimation(alpha);
2、幀動畫
2-1:建立檔案夾darwable
2-2:建立檔案XX.xml,並把所有的圖片放進去
<item android:drawable="@drawable/run01" android:duration="100" />
……
2-3:在xml檔案的ImageView控制項中設定背景為XX.xml
android:background="@drawable/frame"
2-4:用AnimationDrawable控制它
AnimationDrawable ad = (AnimationDrawable) frameImage.getBackground();
3、屬性動畫
3-1:透明漸層:alpha(透明度設定【0-1】)
ObjectAnimator.offFloat(img,"alpha",0.1f,1.0f).setDuration(2000).start();
3-2:平移:translate
ObjectAnimator.ofFloat(img,"translationX",0f,200f).setDuration(2000).start();
3-3:旋轉:rotate
ObjectAnimator.ofFloat(img,"rotationX",0f,720f).setDuration(2000).start();
3-4:縮放:scale
//上面的平移想要達到X軸和Y軸同時平移也可以這樣寫
ObjectAnimator anim1 = ObjectAnimator.ofFloat(img, "scaleX", 1.0f, 2f);
anim1.setDuration(1000);
anim1.start();
ObjectAnimator.ofFloat(img, "scaleY", 1.0f, 2f).setDuration(2000).start();
3-5:組合: set
AnimatorSet as = new AnimatorSet();
ObjectAnimator oa1 = ObjectAnimator.ofFloat(img, "scaleX", 1.0f, 2f);
ObjectAnimator oa2 = ObjectAnimator.ofFloat(img,"rotateX",0f,720f);
ObjectAnimator oa3 = ObjectAnimator.ofFloat(img,"alpha",0f,0.7f);
as.setDuration(2000).setTarget(img);
as.play(oa1).with(oa2).after(oa3);
as.start();
4、acitivy跳轉的動畫(多重補間動畫迴圈)
4-1:建立兩個動畫
4-2:在中轉之後設定它的使用
overridePendingTransition(R.anim.face_in, R.anim.face_out);
5、布局動畫。
在LinearLayout中添加:
android:animateLayoutChanges="true"
Android動畫的使用總結