沒什么好總結(jié)的 復(fù)制自 https://developer.android.google.cn/guide/topics/resources/animation-resource 有需要的可以查看官方文檔
動(dòng)畫資源
一個(gè)動(dòng)畫資源可以定義以下兩種動(dòng)畫類型之一:
創(chuàng)新互聯(lián)公司專注于湖州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠為您提供湖州營銷型網(wǎng)站建設(shè),湖州網(wǎng)站制作、湖州網(wǎng)頁設(shè)計(jì)、湖州網(wǎng)站官網(wǎng)定制、
微信小程序開發(fā)服務(wù),打造湖州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供
湖州網(wǎng)站排名全網(wǎng)營銷落地服務(wù)。
- 屬性動(dòng)畫
- 通過使用
Animator
在設(shè)定的時(shí)間段內(nèi)修改對(duì)象的屬性值來創(chuàng)建動(dòng)畫。 - 視圖動(dòng)畫
使用視圖動(dòng)畫框架可以創(chuàng)建兩種類型的動(dòng)畫:
- 補(bǔ)間動(dòng)畫:通過使用
Animation
對(duì)單張圖片執(zhí)行一系列轉(zhuǎn)換來創(chuàng)建動(dòng)畫 - 幀動(dòng)畫:通過使用
AnimationDrawable
按順序顯示一系列圖片來創(chuàng)建動(dòng)畫。
屬性動(dòng)畫
在 XML 中定義的動(dòng)畫,用于在設(shè)定的一段時(shí)間內(nèi)修改目標(biāo)對(duì)象的屬性,例如背景顏色或 Alpha 值。
- 文件位置:
res/animator/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向
ValueAnimator
、ObjectAnimator
或 AnimatorSet
的資源指針。 - 資源引用:
- 在 Java 或 Kotlin 代碼中:
R.animator.filename
在 XML 中:@[package:]animator/filename
- 語法:
- <set
android:ordering=["together" | "sequentially"]>
<objectAnimator
android:propertyName="string"
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<animator
android:duration="int"
android:valueFrom="float | int | color"
android:valueTo="float | int | color"
android:startOffset="int"
android:repeatCount="int"
android:repeatMode=["repeat" | "reverse"]
android:valueType=["intType" | "floatType"]/>
<set>
...
</set>
</set>
該文件必須具有一個(gè)根元素,可以是 <set>
、<objectAnimator>
或 <valueAnimator>
。您可以將動(dòng)畫元素(包括其他 <set>
元素)組合到 <set>
元素中。
- 元素:
<set>
- 容納其他動(dòng)畫元素(
<objectAnimator>
、<valueAnimator>
或其他 <set>
元素)的容器。代表 AnimatorSet
。您可以指定嵌套的 <set>
標(biāo)記來將動(dòng)畫進(jìn)一步組合在一起。每個(gè) <set>
都可以定義自己的 ordering
屬性。
屬性:
android:ordering
- 關(guān)鍵字。指定此集合中動(dòng)畫的播放順序。
值 | 說明 |
---|
sequentially | 依序播放此集合中的動(dòng)畫 |
together (默認(rèn)) | 同時(shí)播放此集合中的動(dòng)畫。 |
<objectAnimator>
- 在特定的一段時(shí)間內(nèi)為對(duì)象的特定屬性創(chuàng)建動(dòng)畫。代表
ObjectAnimator
。屬性:
android:propertyName
- 字符串。必需。要添加動(dòng)畫的對(duì)象屬性,通過其名稱引用。例如,您可以為 View 對(duì)象指定
"alpha"
或 "backgroundColor"
。 但是,objectAnimator
元素不包含 target
屬性,因此您無法在 XML 聲明中設(shè)置要添加動(dòng)畫的對(duì)象。您必須通過調(diào)用 loadAnimator()
來擴(kuò)充您的動(dòng)畫 XML 資源,然后調(diào)用 setTarget()
來設(shè)置包含此屬性的目標(biāo)對(duì)象。 android:valueTo
- 浮點(diǎn)數(shù)、整數(shù)或顏色。必需。動(dòng)畫屬性的結(jié)束值。顏色以六位十六進(jìn)制數(shù)字表示(例如,#333333)。
android:valueFrom
- 浮點(diǎn)數(shù)、整數(shù)或顏色。動(dòng)畫屬性的開始值。如果未指定,則動(dòng)畫將從屬性的 get 方法獲得的值開始。顏色以六位十六進(jìn)制數(shù)字表示(例如,#333333)。
android:duration
- 整數(shù)。動(dòng)畫的時(shí)間,以毫秒為單位。默認(rèn)為 300 毫秒。
android:startOffset
- 整數(shù)。調(diào)用
start()
后動(dòng)畫延遲的毫秒數(shù)。 android:repeatCount
- 整數(shù)。動(dòng)畫的重復(fù)次數(shù)。設(shè)為
"-1"
表示無限次重復(fù),也可設(shè)為正整數(shù)。例如,值 "1"
表示動(dòng)畫在初次播放后重復(fù)播放一次,因此動(dòng)畫總共播放兩次。默認(rèn)值為 "0"
,表示不重復(fù)。 android:repeatMode
- 整數(shù)。動(dòng)畫播放到結(jié)尾處的行為。
android:repeatCount
必須設(shè)置為正整數(shù)或 "-1"
,該屬性才有效。設(shè)置為 "reverse"
可讓動(dòng)畫在每次迭代時(shí)反向播放,設(shè)置為 "repeat"
則可讓動(dòng)畫每次從頭開始循環(huán)播放。 android:valueType
- 關(guān)鍵字。如果值為顏色,則不要指定此屬性。動(dòng)畫框架會(huì)自動(dòng)處理顏色值
值 | 說明 |
---|
intType | 指定動(dòng)畫值為整數(shù) |
floatType (默認(rèn)) | 指定動(dòng)畫值為浮點(diǎn)數(shù) |
<animator>
在指定的時(shí)間段內(nèi)執(zhí)行動(dòng)畫。代表
ValueAnimator
。
屬性:
android:valueTo
浮點(diǎn)數(shù)、整數(shù)或顏色。
必需。動(dòng)畫的結(jié)束值。顏色以六位十六進(jìn)制數(shù)字表示(例如,#333333)。
android:valueFrom
浮點(diǎn)數(shù)、整數(shù)或顏色。
必需。動(dòng)畫的開始值。顏色以六位十六進(jìn)制數(shù)字表示(例如,#333333)。
android:duration
整數(shù)。動(dòng)畫的時(shí)間,以毫秒為單位。默認(rèn)為 300ms。
android:startOffset
整數(shù)。調(diào)用
start()
后動(dòng)畫延遲的毫秒數(shù)。。
android:repeatCount
整數(shù)。動(dòng)畫的重復(fù)次數(shù)。設(shè)為
"-1"
表示無限次重復(fù),也可設(shè)為正整數(shù)。例如,值
"1"
表示動(dòng)畫在初次播放后重復(fù)播放一次,因此動(dòng)畫總共播放兩次。默認(rèn)值為
"0"
,表示不重復(fù)。
android:repeatMode
整數(shù)。動(dòng)畫播放到結(jié)尾處的行為。
android:repeatCount
必須設(shè)置為正整數(shù)或
"-1"
,該屬性才有效。設(shè)置為
"reverse"
可讓動(dòng)畫在每次迭代時(shí)反向播放,設(shè)置為
"repeat"
則可讓動(dòng)畫每次從頭開始循環(huán)播放。
android:valueType
關(guān)鍵字。如果值為顏色,則不要指定此屬性。動(dòng)畫框架會(huì)自動(dòng)處理顏色值。
值 | 說明 |
---|
intType | 指定動(dòng)畫值為整數(shù) |
floatType (默認(rèn)) | 指定動(dòng)畫值為浮點(diǎn)數(shù) |
示例:保存在
res/animator/property_animator.xml
的 XML 文件:
<set android:ordering="sequentially">
<set>
<objectAnimator
android:propertyName="x"
android:duration="500"
android:valueTo="400"
android:valueType="intType"/>
<objectAnimator
android:propertyName="y"
android:duration="500"
android:valueTo="300"
android:valueType="intType"/>
</set>
<objectAnimator
android:propertyName="alpha"
android:duration="500"
android:valueTo="1f"/>
</set>
為了運(yùn)行此動(dòng)畫,您必須將代碼中的 XML 資源擴(kuò)充為 AnimatorSet
對(duì)象,然后在開始運(yùn)行動(dòng)畫集之前為所有動(dòng)畫設(shè)置目標(biāo)對(duì)象。為方便起見,調(diào)用 setTarget()
即可設(shè)置一個(gè)用于 AnimatorSet
的所有子項(xiàng)的目標(biāo)對(duì)象。以下代碼展示了如何執(zhí)行此操作:
java代碼:
AnimatorSet set = (AnimatorSet) AnimatorInflater.loadAnimator(myContext,
R.animator.property_animator);
set.setTarget(myObject);
set.start();
kotlin代碼:
val set: AnimatorSet = AnimatorInflater.loadAnimator(myContext, R.animator.property_animator)
.apply {
setTarget(myObject)
start()
}
另請(qǐng)參閱:
- 屬性動(dòng)畫
- 有關(guān)如何使用屬性動(dòng)畫系統(tǒng)的示例,請(qǐng)參閱 API 演示。
視圖動(dòng)畫
視圖動(dòng)畫框架可支持補(bǔ)間動(dòng)畫和逐幀動(dòng)畫,兩者都可以在 XML 中聲明。以下幾個(gè)部分介紹如何使用這兩種方法。
補(bǔ)間動(dòng)畫
在 XML 中定義的動(dòng)畫,用于對(duì)圖形執(zhí)行旋轉(zhuǎn)、淡出、移動(dòng)和拉伸等轉(zhuǎn)換。
- 文件位置:
res/anim/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向
Animation
的資源指針。 - 資源引用:
- 在 Java 中:
R.anim.filename
在 XML 中:@[package:]anim/filename
- 語法:
- <?xml version="1.0" encoding="utf-8"?>
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@[package:]anim/interpolator_resource"
android:shareInterpolator=["true" | "false"] >
<alpha
android:fromAlpha="float"
android:toAlpha="float" />
<scale
android:fromXScale="float"
android:toXScale="float"
android:fromYScale="float"
android:toYScale="float"
android:pivotX="float"
android:pivotY="float" />
<translate
android:fromXDelta="float"
android:toXDelta="float"
android:fromYDelta="float"
android:toYDelta="float" />
<rotate
android:fromDegrees="float"
android:toDegrees="float"
android:pivotX="float"
android:pivotY="float" />
<set>
...
</set>
</set>
該文件必須具有一個(gè)根元素,可以是 <alpha>
、<scale>
、<translate>
、<rotate>
或包含一組(或多組)其他動(dòng)畫元素(甚至是嵌套的 <set>
元素)的 <set>
元素。
- 元素:
<set>
- 容納其他動(dòng)畫元素(
<alpha>
、<scale>
、<translate>
、<rotate>
)或其他 <set>
元素的容器。代表 AnimationSet
。屬性:
android:interpolator
- 插值器資源。 要應(yīng)用于動(dòng)畫的
Interpolator
。 該值必須是對(duì)指定插值器的資源的引用(而不是插值器類名稱)。您可以使用平臺(tái)提供的默認(rèn)插值器資源,也可以創(chuàng)建自己的插值器資源。有關(guān)插值器的詳細(xì)信息,請(qǐng)參閱以下說明。 android:shareInterpolator
- 布爾值。如果要在所有子元素中共用同一插值器,則為“true”。
<alpha>
- 淡入或淡出動(dòng)畫。代表
AlphaAnimation
。屬性:
android:fromAlpha
- 浮點(diǎn)數(shù)。起始不透明度偏移,0.0 表示透明,1.0 表示不透明。
android:toAlpha
- 浮點(diǎn)數(shù)。結(jié)束不透明度偏移,0.0 表示透明,1.0 表示不透明。
要了解 <alpha>
支持的更多屬性,請(qǐng)參閱 Animation
類引用(其中所有 XML 屬性均由此元素繼承)。
<scale>
- 大小調(diào)整動(dòng)畫。您可以通過指定
pivotX
和 pivotY
,來指定圖片向外(或向內(nèi))擴(kuò)展的中心點(diǎn)。例如,如果這兩個(gè)值為 0、0(左上角),則所有擴(kuò)展均向右下方向進(jìn)行。代表 ScaleAnimation
。屬性:
android:fromXScale
- 浮點(diǎn)數(shù)。起始 X 尺寸偏移,其中 1.0 表示不變。
android:toXScale
- 浮點(diǎn)數(shù)。結(jié)束 X 尺寸偏移,其中 1.0 表示不變。
android:fromYScale
- 浮點(diǎn)數(shù)。起始 Y 尺寸偏移,其中 1.0 表示不變。
android:toYScale
- 浮點(diǎn)數(shù)。結(jié)束 Y 尺寸偏移,其中 1.0 表示不變。
android:pivotX
- 浮點(diǎn)數(shù)。在對(duì)象縮放時(shí)要保持不變的 X 坐標(biāo)。
android:pivotY
- 浮點(diǎn)數(shù)。在對(duì)象縮放時(shí)要保持不變的 Y 坐標(biāo)。
要了解 <scale>
支持的更多屬性,請(qǐng)參閱 Animation
類引用(其中所有 XML 屬性均由此元素繼承)。
<translate>
- 垂直和/或水平移動(dòng)。支持采用以下三種格式之一的以下屬性:從 -100 到 100 的以“%”結(jié)尾的值,表示相對(duì)于自身的百分比;從 -100 到 100 的以“%p”結(jié)尾的值,表示相對(duì)于其父項(xiàng)的百分比;不帶后綴的浮點(diǎn)值,表示絕對(duì)值。代表
TranslateAnimation
。屬性:
android:fromXDelta
- 浮動(dòng)數(shù)或百分比。起始 X 偏移。表示方式:相對(duì)于正常位置的像素?cái)?shù)(例如
"5"
),相對(duì)于元素寬度的百分比(例如 "5%"
),或相對(duì)于父項(xiàng)寬度的百分比(例如 "5%p"
)。 android:toXDelta
- 浮動(dòng)數(shù)或百分比。結(jié)束 X 偏移。表示方式:相對(duì)于正常位置的像素?cái)?shù)(例如
"5"
),相對(duì)于元素寬度的百分比(例如 "5%"
),或相對(duì)于父項(xiàng)寬度的百分比(例如 "5%p"
)。 android:fromYDelta
- 浮動(dòng)數(shù)或百分比。起始 Y 偏移。表示方式:相對(duì)于正常位置的像素?cái)?shù)(例如
"5"
),相對(duì)于元素高度的百分比(例如 "5%"
),或相對(duì)于父項(xiàng)高度的百分比(例如 "5%p"
)。 android:toYDelta
- 浮動(dòng)數(shù)或百分比。結(jié)束 Y 偏移。表示方式:相對(duì)于正常位置的像素?cái)?shù)(例如
"5"
),相對(duì)于元素高度的百分比(例如 "5%"
),或相對(duì)于父項(xiàng)高度的百分比(例如 "5%p"
)。
要了解 <translate>
支持的更多屬性,請(qǐng)參閱 Animation
類引用(其中所有 XML 屬性均由此元素繼承)。
<rotate>
- 旋轉(zhuǎn)動(dòng)畫。代表
RotateAnimation
。屬性:
android:fromDegrees
- 浮點(diǎn)數(shù)。起始角度位置,以度為單位。
android:toDegrees
- 浮點(diǎn)數(shù)。結(jié)束角度位置,以度為單位。
android:pivotX
- 浮動(dòng)數(shù)或百分比。旋轉(zhuǎn)中心的 X 坐標(biāo)。表示方式:相對(duì)于對(duì)象左邊緣的像素?cái)?shù)(例如
"5"
),相對(duì)于對(duì)象左邊緣的百分比(例如 "5%"
),或相對(duì)于父級(jí)容器左邊緣的百分比(例如 "5%p"
)。 android:pivotY
- 浮點(diǎn)數(shù)或百分比。旋轉(zhuǎn)中心的 Y 坐標(biāo)。表示方式:相對(duì)于對(duì)象上邊緣的像素?cái)?shù)(例如
"5"
),相對(duì)于對(duì)象上邊緣的百分比(例如 "5%"
),或相對(duì)于父級(jí)容器上邊緣的百分比(例如 "5%p"
)。
要了解 <rotate>
支持的更多屬性,請(qǐng)參閱 Animation
類引用(其中所有 XML 屬性均由此元素繼承)。
- 示例:
- 保存在
res/anim/hyperspace_jump.xml
的 XML 文件:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false">
<scale
android:interpolator="@android:anim/accelerate_decelerate_interpolator"
android:fromXScale="1.0"
android:toXScale="1.4"
android:fromYScale="1.0"
android:toYScale="0.6"
android:pivotX="50%"
android:pivotY="50%"
android:fillAfter="false"
android:duration="700" />
<set
android:interpolator="@android:anim/accelerate_interpolator"
android:startOffset="700">
<scale
android:fromXScale="1.4"
android:toXScale="0.0"
android:fromYScale="0.6"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
<rotate
android:fromDegrees="0"
android:toDegrees="-45"
android:toYScale="0.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="400" />
</set>
</set>
以下應(yīng)用代碼會(huì)將動(dòng)畫應(yīng)用到 ImageView
并啟動(dòng)動(dòng)畫:
java 代碼:
ImageView image = (ImageView) findViewById(R.id.image);
Animation hyperspaceJump = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump);
image.startAnimation(hyperspaceJump);
kotlin 代碼:
val image: ImageView = findViewById(R.id.image)
val hyperspaceJump: Animation = AnimationUtils.loadAnimation(this, R.anim.hyperspace_jump)
image.startAnimation(hyperspaceJump) - 另請(qǐng)參閱:
-
插值器
插值器是在 XML 中定義的動(dòng)畫修改器,它會(huì)影響動(dòng)畫的變化率。插值器可對(duì)現(xiàn)有的動(dòng)畫效果執(zhí)行加速、減速、重復(fù)、退回等。
插值器通過 android:interpolator
屬性應(yīng)用于動(dòng)畫元素,該屬性的值是對(duì)插值器資源的引用。
Android 中提供的所有插值器都是 Interpolator
類的子類。為便于您使用 android:interpolator
屬性將插值器應(yīng)用于動(dòng)畫,Android 針對(duì)每個(gè)插值器類包含了一個(gè)可供您引用的公共資源。下表指定了每個(gè)插值器要使用的資源:
插值器類 | 資源 ID |
---|
AccelerateDecelerateInterpolator | @android:anim/accelerate_decelerate_interpolator |
AccelerateInterpolator | @android:anim/accelerate_interpolator |
AnticipateInterpolator | @android:anim/anticipate_interpolator |
AnticipateOvershootInterpolator | @android:anim/anticipate_overshoot_interpolator |
BounceInterpolator | @android:anim/bounce_interpolator |
CycleInterpolator | @android:anim/cycle_interpolator |
DecelerateInterpolator | @android:anim/decelerate_interpolator |
LinearInterpolator | @android:anim/linear_interpolator |
OvershootInterpolator | @android:anim/overshoot_interpolator |
您可以通過以下方式使用 android:interpolator
屬性應(yīng)用上述某個(gè)插值器:
<set android:interpolator="@android:anim/accelerate_interpolator">
...
</set>
自定義插值器
如果您對(duì)平臺(tái)提供的插值器(在上表中列出)不滿意,則可以使用修改過的屬性創(chuàng)建自定義插值器資源。例如,您可以調(diào)整 AnticipateInterpolator
的加速率或調(diào)整 CycleInterpolator
的循環(huán)次數(shù)。為此,您需要在 XML 文件中創(chuàng)建自己的插值器資源。
- 文件位置:
res/anim/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向相應(yīng)插值器對(duì)象的資源指針。
- 資源引用:
- 在 XML 中:
@[package:]anim/filename
- 語法:
- <?xml version="1.0" encoding="utf-8"?>
<InterpolatorName xmlns:android="http://schemas.android.com/apk/res/android"
android:attribute_name="value"
/>
如果您不應(yīng)用任何屬性,則您的插值器的運(yùn)作方式將與平臺(tái)提供的插值器(在上表中列出)完全相同。
- 元素:
- 請(qǐng)注意,在 XML 中定義的每個(gè)
Interpolator
實(shí)現(xiàn)的名稱都以小寫字母開頭。
<accelerateDecelerateInterpolator>
- 變化率在開始和結(jié)束時(shí)緩慢,但在中間會(huì)加快。
沒有屬性。
<accelerateInterpolator>
- 變化率在開始時(shí)較為緩慢,然后會(huì)加快。
屬性:
android:factor
- 浮點(diǎn)數(shù)。加速率(默認(rèn)為 1)。
<anticipateInterpolator>
- 先反向變化,然后再急速正向變化。
屬性:
android:tension
- 浮點(diǎn)數(shù)。要應(yīng)用的張力(默認(rèn)為 2)。
<anticipateOvershootInterpolator>
- 先反向變化,再急速正向變化并超過目標(biāo)值,然后以最終值結(jié)束。
屬性:
android:tension
- 浮點(diǎn)數(shù)。要應(yīng)用的張力(默認(rèn)為 2)。
android:extraTension
- 浮點(diǎn)數(shù)。張力要乘以的倍數(shù)(默認(rèn)值為 1.5)。
<bounceInterpolator>
- 變化會(huì)在結(jié)束時(shí)退回。
沒有屬性。
<cycleInterpolator>
按指定的循環(huán)次數(shù)重復(fù)動(dòng)畫。變化率符合正弦曲線圖。
屬性:
android:cycles
- 整數(shù)。循環(huán)次數(shù)(默認(rèn)值為 1)。
<decelerateInterpolator>
- 變化率開始時(shí)很快,然后減慢。
屬性:
android:factor
- 浮點(diǎn)數(shù)。減速率(默認(rèn)值為 1)。
<linearInterpolator>
- 變化率恒定不變。
沒有屬性。
<overshootInterpolator>
- 先急速正向變化,再超過最終值,然后回到最終值。
屬性:
android:tension
- 浮點(diǎn)數(shù)。要應(yīng)用的張力(默認(rèn)為 2)。
示例:
保存在 res/anim/my_overshoot_interpolator.xml
的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<overshootInterpolator xmlns:android="http://schemas.android.com/apk/res/android"
android:tension="7.0"
/>
此動(dòng)畫 XML 將應(yīng)用插值器:
<scale xmlns:android="http://schemas.android.com/apk/res/android"
android:interpolator="@anim/my_overshoot_interpolator"
android:fromXScale="1.0"
android:toXScale="3.0"
android:fromYScale="1.0"
android:toYScale="3.0"
android:pivotX="50%"
android:pivotY="50%"
android:duration="700" />
幀動(dòng)畫
在 XML 中定義的按順序顯示一系列圖片的動(dòng)畫(如電影)。
- 文件位置:
res/drawable/filename.xml
該文件名將用作資源 ID。- 編譯后的資源數(shù)據(jù)類型:
- 指向
AnimationDrawable
的資源指針。 - 資源引用:
- 在 Java 中:
R.drawable.filename
在 XML 中:@[package:]drawable.filename
- 語法:
- <?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot=["true" | "false"] >
<item
android:drawable="@[package:]drawable/drawable_resource_name"
android:duration="integer" />
</animation-list>
- 元素:
<animation-list>
- 必需。此元素必須是根元素。包含一個(gè)或多個(gè)
<item>
元素。屬性:
android:oneshot
- 布爾值。如果您想要執(zhí)行一次動(dòng)畫,則為“true”;如果要循環(huán)播放動(dòng)畫,則為“false”。
<item>
- 單幀動(dòng)畫。必須是
<animation-list>
元素的子元素。屬性:
android:drawable
- 可繪制資源。要用于此幀的可繪制對(duì)象。
android:duration
- 整數(shù)。顯示此幀的持續(xù)時(shí)間,以毫秒為單位。
- 示例:
- 保存在
res/drawable/rocket.xml
的 XML 文件:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
android:oneshot="false">
<item android:drawable="@drawable/rocket_thrust1" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust2" android:duration="200" />
<item android:drawable="@drawable/rocket_thrust3" android:duration="200" />
</animation-list>- 以下應(yīng)用代碼會(huì)將該動(dòng)畫設(shè)置為 View 的背景,然后播放動(dòng)畫:
java 代碼:
ImageView rocketImage = (ImageView) findViewById(R.id.rocket_image);
rocketImage.setBackgroundResource(R.drawable.rocket_thrust);
rocketAnimation = rocketImage.getBackground();
if (rocketAnimation instanceof Animatable) {
((Animatable)rocketAnimation).start();
}
kotlin 代碼:
val rocketImage: ImageView = findViewById(R.id.rocket_image)
rocketImage.setBackgroundResource(R.drawable.rocket_thrust)
val rocketAnimation = rocketImage.background
if (rocketAnimation is Animatable) {
rocketAnimation.start()
}
本文標(biāo)題:Android復(fù)習(xí)(二)應(yīng)用資源-->動(dòng)畫-創(chuàng)新互聯(lián)
本文路徑:http://www.rwnh.cn/article10/dsccgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、品牌網(wǎng)站制作、營銷型網(wǎng)站建設(shè)、標(biāo)簽優(yōu)化、用戶體驗(yàn)、軟件開發(fā)
廣告
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源:
創(chuàng)新互聯(lián)