Android 補間動畫屬性詳解

關(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

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 179,030評論 25 709
  • 1 背景 不能只分析源碼呀,分析的同時也要整理歸納基礎(chǔ)知識,剛好有人微博私信讓全面說說Android的動畫,所以今...
    未聞椛洺閱讀 2,850評論 0 10
  • Animation Animation類是所有動畫(scale、alpha、translate、rotate)的基...
    四月一號閱讀 2,030評論 0 10
  • 讀書之用 著名作家、北大教授曹文軒有一次在給北大中文系新生的入學演講中,談到他對閱讀的理解和感悟。閱讀是一種人生方...
    皋辜格琢閱讀 1,678評論 4 4
  • 她回來了。人生呀,注定有些人參與你的前半生,在你的生命里扮演舉足輕重的角色!后來,因為某些原因,你們成為毫不相干的...
    陸染66閱讀 225評論 0 0

友情鏈接更多精彩內(nèi)容