
屬性動(dòng)畫(huà)
View Animation
ViewPropertyAnimator
ObjectAnimator
ValueAnimator
imageView.animate().translationXBy(300).setDuration(duration).start();
Keyframe keyframe1 = Keyframe.ofFloat(0, 0);
Keyframe keyframe2 = Keyframe.ofFloat(0.5f, 100);
Keyframe keyframe3 = Keyframe.ofFloat(1, 80);
PropertyValuesHolder progress = PropertyValuesHolder.
ofKeyframe("progress",keyframe1, keyframe2, keyframe3);
objectAnimator = ObjectAnimator.ofPropertyValuesHolder(view, progress);
objectAnimator.start();
animator = AnimatorInflater.loadAnimator(getApplication(), R.animator.test_anim);
animator.setTarget(textView);
animator.start();
ObjectAnimator moveIn = ObjectAnimator.ofFloat(textView, "translationX", -500f, 0f);
ObjectAnimator rotate = ObjectAnimator.ofFloat(textView, "rotation", 0f, 360f);
ObjectAnimator fadeInOut = ObjectAnimator.ofFloat(textView, "alpha", 1f, 0f, 1f);
AnimatorSet animatorSet = new AnimatorSet();
animatorSet.play(rotate).with(fadeInOut).after(moveIn);
animatorSet.setDuration(2000);
animatorSet.start();
補(bǔ)間動(dòng)畫(huà)
兩種code和xml
實(shí)例:
translateAnimation = new TranslateAnimation(0, 200, 0, 200);
translateAnimation.setDuration(2000);
translateAnimation.setRepeatCount(-1);
translateAnimation.setRepeatMode(Animation.REVERSE);
translateAnimation.setFillAfter(true);
textView.startAnimation(translateAnimation);
animation = AnimationUtils.loadAnimation(this, R.anim.anim_translate);
textView.startAnimation(animation);
alpha_demo.xml
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromAlpha="1.0"
android:toAlpha="0.1"
android:duration="2000"/>
fromAlpha :起始透明度
toAlpha:結(jié)束透明度
1.0表示完全不透明
0.0表示完全透明
rotate_demo.xml
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromDegrees="0"
android:toDegrees="360"
android:duration="1000"
android:repeatCount="1"
android:repeatMode="reverse"/>
fromDegrees:表示旋轉(zhuǎn)的起始角度
toDegrees:表示旋轉(zhuǎn)的結(jié)束角度
repeatCount:旋轉(zhuǎn)的次數(shù) 默認(rèn)值是0 代表旋轉(zhuǎn)1次 如果值是repeatCount=4 旋轉(zhuǎn)5次,值為-1或者infinite時(shí),表示補(bǔ)間動(dòng)畫(huà)永不停止
repeatMode 設(shè)置重復(fù)的模式。默認(rèn)是restart。當(dāng)repeatCount的值大于0或者為infinite時(shí)才有效。
repeatCount=-1 或者infinite 循環(huán)了
還可以設(shè)成reverse,表示偶數(shù)次顯示動(dòng)畫(huà)時(shí)會(huì)做與動(dòng)畫(huà)文件定義的方向相反的方向動(dòng)行。
scale_demo.xml
android:interpolator="@android:anim/accelerate_interpolator"
android:fromXScale="0.2"
android:toXScale="1.5"
android:fromYScale="0.2"
android:toYScale="1.5"
android:pivotX="50%"
android:pivotY="50%"
android:duration="2000"/>
fromXScale:表示沿著x軸縮放的起始比例
toXScale:表示沿著x軸縮放的結(jié)束比例
fromYScale:表示沿著y軸縮放的起始比例
toYScale:表示沿著y軸縮放的結(jié)束比例
圖片中心點(diǎn):
android:pivotX="50%"
android:pivotY="50%"
translate_demo.xml
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXDelta="0"
android:toXDelta="320"
android:fromYDelta="0"
android:toYDelta="0"
android:duration="2000"/>
android:interpolator 動(dòng)畫(huà)的渲染器
1、accelerate_interpolator(動(dòng)畫(huà)加速器) 使動(dòng)畫(huà)在開(kāi)始的時(shí)候 最慢,然后逐漸加速
2、decelerate_interpolator(動(dòng)畫(huà)減速器)使動(dòng)畫(huà)在開(kāi)始的時(shí)候 最快,然后逐漸減速
3、accelerate_decelerate_interpolator(動(dòng)畫(huà)加速減速器)
中間位置分層: 使動(dòng)畫(huà)在開(kāi)始的時(shí)候 最慢,然后逐漸加速
使動(dòng)畫(huà)在開(kāi)始的時(shí)候 最快,然后逐漸減速 結(jié)束的位置最慢
fromXDelta 動(dòng)畫(huà)起始位置的橫坐標(biāo)
toXDelta 動(dòng)畫(huà)起結(jié)束位置的橫坐標(biāo)
fromYDelta 動(dòng)畫(huà)起始位置的縱坐標(biāo)
toYDelta 動(dòng)畫(huà)結(jié)束位置的縱坐標(biāo)
duration 動(dòng)畫(huà)的持續(xù)時(shí)間
set_demo.xml
android:interpolator="@android:anim/decelerate_interpolator"
android:shareInterpolator="true" >
<scale
android:duration="2000"
android:fromXScale="0.2"
android:fromYScale="0.2"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="1.5"
android:toYScale="1.5" />
<rotate
android:duration="1000"
android:fromDegrees="0"
android:repeatCount="1"
android:repeatMode="reverse"
android:toDegrees="360" />
<translate
android:duration="2000"
android:fromXDelta="0"
android:fromYDelta="0"
android:toXDelta="320"
android:toYDelta="0" />
<alpha
android:duration="2000"
android:fromAlpha="1.0"
android:toAlpha="0.1" />
</set>