關(guān)于android的動畫網(wǎng)上介紹已經(jīng)很多了,寫的好的文章也有很多,自己記錄一下關(guān)于補間動畫的屬性:
1.補間動畫種類
java類名 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?xml ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?描述信息
AlphaAnimation ? ? ? ? ? ? ? ?放置在res/anim/目錄下 ? ? ? ? ? ? ? ? ? 漸變透明度動畫效果
RotateAnimation ? ? ? ? ? ? ?放置在res/anim/目錄下 ? ? ? ? ? ? ? ? ?畫面轉(zhuǎn)移旋轉(zhuǎn)動畫效果?
ScaleAnimation ? ? ? ? ? ? ? ?放置在res/anim/目錄下 ? ? ? ? ? ? ? ? ?漸變尺寸伸縮動畫效果
TranslateAnimation ? ? ? ??放置在res/anim/目錄下 ? ? ? ? ? ? ? ?畫面轉(zhuǎn)換位置移動動畫效果
AnimationSet ? ? ? ? ? ? ? ? ?放置在res/anim/目錄下 ? ? ? ? 一個持有其它動畫元素alpha、scale、 ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? translate、rotate或者其它set元素的容器
上面是關(guān)于補間動畫的種類,關(guān)系以及作用。
2-1.?Animation屬性詳解(xml和java方式)
? ? ? ? ? ? ? xml屬性 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? java方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?釋義
android:detachWallpaper ? ? ? ?setDetachWallpaper(boolean) ? ? ? ? ? ? ? 是否在壁紙上運行
android:duration ? ? ? ? ? ? ? ? ? ? ?setDuration(long) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?動畫持續(xù)時間,毫秒為單位
android:fillAfter ? ? ? ? ? ? ? ? ? ? ? setFillAfter(boolean) ? ? ?控件動畫結(jié)束時是否保持動畫最后的狀態(tài)
android:fillBefore ? ? ? ? ? ? ? ? ? ?setFillBefore(boolean) ? 控件動畫結(jié)束時是否還原到開始前的狀態(tài)
android:fillEnabled ? ? ? ? ? ? ? ? setFillEnabled(boolean) ? ? ? ? ? ? ? ? ? 與android:fillBefore效果相同
android:interpolator ? ? ? ? ? ? ?setInterpolator(Interpolator) ? ? ? 設(shè)定插值器(指定的動畫效果, ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 譬如回彈等)
android:repeatCount ? ? ? ? ? ? ?setRepeatCount(int) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 重復次數(shù)
android:repeatMode ? ? ? ? ? ? ?setRepeatMode(int) ? ? ? ? ? ? ? ? ?重復類型有兩個值,reverse表示 ? ? ? ? ? ? ??
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?倒序回放,restart表示從頭播放
android:startOff ? ? ? ? ? ? ? ? ? setsetStartOffset(long) ? ? ? ? ? ? ? 調(diào)用start函數(shù)之后等待開始運行的
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?時間,單位為毫秒
android:zAdjustment ? ? ? ? ? setZAdjustment(int) ? ? ? ? ?表示被設(shè)置動畫的內(nèi)容運行時在Z軸位置
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (top/bottom/normal),默認為normal
上面的這些屬性無論哪一種補間動畫都是具備的,可以設(shè)置一個或多個,屬于補間動畫的通用屬性。下面介紹每種補間動畫的特有屬性:
2-2-1.Alpha(透明變化,淡入淡出效果)屬性詳解
? ? ? ? ? ? ?xml屬性 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?java方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 釋義
android:fromAlpha ? ? ? ? ?AlphaAnimation(float fromAlpha, …) ? ? ? ? 動畫開始的透明度(0.0到
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 1.0,0.0是全透明,1.0是不透明)
android:toAlpha ? ? ? ? ? ?AlphaAnimation(…, float toAlpha) ? ? ? ? ? ? ? ? 動畫結(jié)束的透明度,同上
2-2-2.Translate(位移)屬性詳解
? ? ? ? ? ? ?xml屬性 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? java方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?釋義
android:fromXDelta? ? TranslateAnimation(float fromXDelta, …)? ? 起始點X軸坐標(數(shù)值、百分數(shù)、百分數(shù)p,譬如50表示以當前View左上角坐標加50px為初始點、50%表示以當前View的左上角加上當前View寬高的50%做為初始點、50%p表示以當前View的左上角加上父控件寬高的50%做為初始點)
android:fromYDelta ? ? TranslateAnimation(…, float fromYDelta, …) ? ? ?起始點Y軸坐標(同上) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
android:toXDelta ? ? ? ? TranslateAnimation(…, float toXDelta, …) ? ? ? ? ? 結(jié)束點X軸坐標(同上)
android:toYDelta ? ? ? ? TranslateAnimation(…, float toYDelta) ? ? ? ? ? ? ? ?結(jié)束點Y軸坐標(同上)
2-2-3.Scale(縮放大小)屬性詳解
? ? ? ? ? ? ? xml屬性 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? java方法? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 釋義
android:fromXScale ? ? ? ? ScaleAnimation(float fromX, …) ? ? ? ?初始x軸縮放比例(0.0~1.0)
android:fromYScale ? ? ? ?ScaleAnimation(…, float fromY, …) ? ? 初始y軸縮放比例(0.0~1.0)
android:pivotX? ? ? ? ? ? ? ScaleAnimation(…, float pivotX, …)? ? ? 縮放起點x位置坐標(數(shù)值、百分數(shù)、百分數(shù)p,譬如50表示以當前View左上角坐標加50px為初始點、50%表示以當前View的左上角加上當前View寬高的50%做為初始點、50%p表示以當前View的左上角加上父控件寬高的50%做為初始點)
android:pivotY ? ? ? ? ? ? ? ScaleAnimation(…, float pivotY) ? ? ? ? ?縮放起點y位置坐標,(同上)
android:toXScale ? ? ? ? ? ScaleAnimation(…, float toX, …) ? ? ? ? ?結(jié)束x軸縮放比例(0.0~1.0)
android:toYScale ? ? ? ? ? ScaleAnimation(…, float toY, …) ? ? ? ? ?結(jié)束y軸縮放比例(0.0~1.0)
2-2-4.Rotate(旋轉(zhuǎn))屬性詳解
? ? ? ? ? ? ? xml屬性? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? java方法? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 釋義
android:fromDegrees ?RotateAnimation(float fromDegrees, …) ?旋轉(zhuǎn)開始角度,正代表順時針度
android:pivotX? ? ? ? ? RotateAnimation(…, float pivotX, …) ?旋轉(zhuǎn)起點X坐標(數(shù)值、百分數(shù)、百分數(shù)p,譬如50表示以當前View左上角坐標加50px為初始點、50%表示以當前View的左上角加上當前View寬高的50%做為初始點、50%p表示以當前View的左上角加上父控件寬高的50%做為初始點)
android:pivotY ? ? ? ? RotateAnimation(…, float pivotX, …) ?旋轉(zhuǎn)起點Y坐標,同上
android:toDegrees? RotateAnimation(…, float toDegrees, …) 旋轉(zhuǎn)結(jié)束角度,正代表順時針度數(shù)
2-2-5 set標簽以及AnimationSet詳解
AnimationSet繼承自Animation,是上面四種的組合容器管理類,沒有自己特有的屬性,他的屬性繼承自Animation,所以特別注意,當我們對set標簽使用Animation的屬性時會對該標簽下的所有子控件都產(chǎn)生影響。
2-3 -1?Animation類的常用方法
Animation類的方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?釋義
reset() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 重置Animation的初始化
cancel() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 取消Animation動畫
start() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?開始Animation動畫 ?
setAnimationListener(AnimationListener listener) ? ? ?給當前Animation設(shè)置動畫監(jiān)聽
hasStarted() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 判斷當前Animation是否開始
hasEnded() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 判斷當前Animation是否結(jié)束
2-3-2 View類的常用動畫操作方法
既然補間動畫只能給View使用,那就來看看View中和動畫相關(guān)的幾個常用方法吧,如下:
View類的常用動畫方法 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?釋義
startAnimation(Animation animation) ? ? ? ? ? ? 對當前View開始設(shè)置的Animation動畫
clearAnimation() ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 取消當View在執(zhí)行的Animation動畫
記錄一下。
源碼地址:動畫示例demo