AnimatedVectorDrawable 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
這個類別會使用 或 android.animation.AnimatorSet
定義的android.animation.ObjectAnimator
動畫,android.graphics.drawable.VectorDrawable
以動畫顯示 的屬性。
[Android.Runtime.Register("android/graphics/drawable/AnimatedVectorDrawable", DoNotGenerateAcw=true)]
public class AnimatedVectorDrawable : Android.Graphics.Drawables.Drawable, Android.Graphics.Drawables.IAnimatable2, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("android/graphics/drawable/AnimatedVectorDrawable", DoNotGenerateAcw=true)>]
type AnimatedVectorDrawable = class
inherit Drawable
interface IAnimatable
interface IJavaObject
interface IDisposable
interface IJavaPeerable
interface IAnimatable2
- 繼承
- 屬性
- 實作
備註
這個類別會使用 或 android.animation.AnimatorSet
定義的android.animation.ObjectAnimator
動畫,建立 屬性android.graphics.drawable.VectorDrawable
的動畫效果。
從 API 25 開始,AnimatedVectorDrawable 會在 RenderThread (上執行,而不是在舊版 API) 的 UI 線程上執行。 這表示 AnimatedVectorDrawable 中的動畫即使在 UI 線程上有大量工作負載時,仍可保持順暢。 注意:如果UI線程沒有回應,RenderThread可能會繼續以動畫顯示,直到UI線程能夠推送另一個畫面為止。 因此,無法使用 UI 線程動畫精確協調已啟用 RenderThread 功能的 AnimatedVectorDrawable。 此外, android.graphics.drawable.Animatable2.AnimationCallback#onAnimationEnd(Drawable)
將會在 RenderThread 上完成 AnimatedVectorDrawable 之後呼叫框架。
AnimatedVectorDrawable 可以在三個不同的 XML 檔案或一個 XML 中定義。
“ThreeXML”><h3>在三個不同的 XML 檔案<中定義 AnimatedVectorDrawable/h3<>ul> “VDExample”><li><h4>XML,以讓 VectorDrawable 包含要產生動畫<效果的屬性/h4>
動畫可以在 中的 android.graphics.drawable.VectorDrawable
可動畫屬性上執行。 這些屬性將由產生 android.animation.ObjectAnimator
動畫效果。 ObjectAnimator 的目標可以是根元素、群組元素或路徑專案。 目標元素必須在相同的 VectorDrawable 內唯一命名。 沒有動畫的專案不需要命名。
以下是 中所有可產生動畫的屬性android.graphics.drawable.VectorDrawable
:表格框線=“2” align=“center” cellpadding=“5”><thead<>tr<>th>Element Name/th<>th>Animatable attribute name<</th<>/tr></thead<>tr<>td>< <vector></td><td>alpha</td/tr>><<td>< rowspan=“7”><group></td><td>rotation</td/tr>>><<td>< pivotX</td></tr><><td>pivotY</td></<><>tr tr td>scaleX</td></tr><tr<>td>scaleY</td></td/>>><<tr td translateX</td></tr><><td>translateY</td></tr><tr><td rowspan=“9”><path></td><td>pathData</td/tr><<>td><> fillColor/td<>/tr<><>td>strokeColor<</td<>/tr><tr<>td>strokeWidth</td/tr<><>>td<> strokeAlpha</td></<><>>tr td fillAlpha</td/td></tr><Tr><td>trimPathStart</td/tr><><td><> trimPathEnd</td></tr><<>td>trimPathOffset</td/tr tr>><<td><><clip-path></td><td>pathData</td></tr></table>
以下是 vectordrawable.xml 中定義的 VectorDrawable 範例。 這個 VectorDrawable 是由檔名所參考, (不包含 AnimatedVectorDrawable XML 範例中的檔案後綴) 。
<vector xmlns:android="http://schemas.android.com/apk/res/android"
android:height="64dp"
android:width="64dp"
android:viewportHeight="600"
android:viewportWidth="600" >
<group
android:name="rotationGroup"
android:pivotX="300.0"
android:pivotY="300.0"
android:rotation="45.0" >
<path
android:name="v"
android:fillColor="#000000"
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>
</vector>
</李>
“AVDExample”><li><h4>XML for AnimatedVectorDrawable</h4>
AnimatedVectorDrawable 元素具有 VectorDrawable 屬性,以及一或多個目標元素 (s) 。 目標元素可以依 android:name 屬性指定其目標,並將目標與適當的 ObjectAnimator 或 AnimatorSet by android:animation 屬性連結。
下列程式代碼範例會定義 AnimatedVectorDrawable。 請注意,名稱會參考上述 VectorDrawable XML 中的群組和路徑。
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
android:drawable="@drawable/vectordrawable" >
<target
android:name="rotationGroup"
android:animation="@animator/rotation" />
<target
android:name="v"
android:animation="@animator/path_morph" />
</animated-vector>
</李>
<li><h4>XML for Animations defined using ObjectAnimator or AnimatorSet</h4>
從先前的 AnimatedVectorDrawable 範例中,使用了兩個動畫:rotation.xml 和 path_morph.xml。
rotation.xml 將目標組從 0 度旋轉至 360 度超過 6000 毫秒:
<objectAnimator
android:duration="6000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360" />
path_morph.xml 將路徑從一個圖形轉換成另一個圖形。 請注意,路徑必須相容於變形。 具體而言,路徑必須具有相同的命令順序,而且每個命令的參數數目必須相同。 建議將路徑字串儲存為字串資源以供重複使用。
<set xmlns:android="http://schemas.android.com/apk/res/android">
<objectAnimator
android:duration="3000"
android:propertyName="pathData"
android:valueFrom="M300,70 l 0,-70 70,70 0,0 -70,70z"
android:valueTo="M300,70 l 0,-70 70,0 0,140 -70,0 z"
android:valueType="pathType"/>
</set>
</ul> “OneXML”><h3 定義一個 XML 檔案</h3>中的 AnimatedVectorDrawable>
由於 AAPT 工具支援將數個相關 XML 檔案組合在一起的新格式,因此我們可以將先前範例中的 XML 檔案合併成一個 XML 檔案:
<animated-vector xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:aapt="http://schemas.android.com/aapt" >
<aapt:attr name="android:drawable">
<vector
android:height="64dp"
android:width="64dp"
android:viewportHeight="600"
android:viewportWidth="600" >
<group
android:name="rotationGroup"
android:pivotX="300.0"
android:pivotY="300.0"
android:rotation="45.0" >
<path
android:name="v"
android:fillColor="#000000"
android:pathData="M300,70 l 0,-70 70,70 0,0 -70,70z" />
</group>
</vector>
</aapt:attr>
<target android:name="rotationGroup"> *
<aapt:attr name="android:animation">
<objectAnimator
android:duration="6000"
android:propertyName="rotation"
android:valueFrom="0"
android:valueTo="360" />
</aapt:attr>
</target>
<target android:name="v" >
<aapt:attr name="android:animation">
<set>
<objectAnimator
android:duration="3000"
android:propertyName="pathData"
android:valueFrom="M300,70 l 0,-70 70,70 0,0 -70,70z"
android:valueTo="M300,70 l 0,-70 70,0 0,140 -70,0 z"
android:valueType="pathType"/>
</set>
</aapt:attr>
</target>
</animated-vector>
的 android.graphics.drawable.AnimatedVectorDrawable
Java 檔。
此頁面的部分是根據 所建立和共用的工作進行修改,並根據 2.5 屬性授權中所述的詞彙來使用。
建構函式
AnimatedVectorDrawable() | |
AnimatedVectorDrawable(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時所使用的建構函式;由運行時間呼叫。 |
屬性
Alpha |
取得可繪製的目前Alpha值。 (繼承來源 Drawable) |
AutoMirrored |
指出當配置方向為 RTL 由右至左時,是否會自動鏡像此可繪製。 -或- 設定當配置方向為 RTL (由右至左) 時,是否自動鏡像此可繪製。 (繼承來源 Drawable) |
Bounds |
傳回可繪製的界限 Rect。 -或- 指定可繪製的周框。 (繼承來源 Drawable) |
Callback |
傳回附加至這個 Drawable 的目前 |
ChangingConfigurations |
傳回此可繪製參數可能會變更的組態參數遮罩,要求其重新建立。 -或- 設定此可繪製參數可能會變更的組態參數遮罩,要求重新建立。 (繼承來源 Drawable) |
Class |
傳回這個 |
ColorFilter |
傳回目前的色彩篩選條件,如果沒有設定,則 |
Current |
這個類別會使用 或 |
DirtyBounds |
傳回可繪製的已變更界限 Rect。 (繼承來源 Drawable) |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
HasFocusStateSpecified |
指出這個可繪製專案是否至少有一個明確指定 |
IntrinsicHeight |
傳回可繪製的內部高度。 (繼承來源 Drawable) |
IntrinsicWidth |
傳回可繪製的內建寬度。 (繼承來源 Drawable) |
IsFilterBitmap |
這個類別會使用 或 |
IsProjected |
這個可繪製的要求投影是否為 。 (繼承來源 Drawable) |
IsRunning |
指出動畫是否正在執行。 |
IsStateful |
指出這個可繪製專案是否會根據狀態變更其外觀。 (繼承來源 Drawable) |
IsVisible |
這個類別會使用 或 |
JniIdentityHashCode |
這個類別會使用 或 |
JniPeerMembers |
這個類別會使用 或 |
LayoutDirection |
傳回這個可繪製的已解析版面配置方向。 (繼承來源 Drawable) |
Level |
擷取目前的層級。 (繼承來源 Drawable) |
MinimumHeight |
傳回這個可繪製項目建議的最小高度。 (繼承來源 Drawable) |
MinimumWidth |
傳回這個可繪製項目建議的最小寬度。 (繼承來源 Drawable) |
Opacity |
傳回這個可繪製的不透明度/透明度。 |
OpticalInsets |
傳回此 Drawable 所建議的版面配置內集,以在版面配置期間搭配對齊作業使用。 (繼承來源 Drawable) |
PeerReference |
這個類別會使用 或 |
ThresholdClass |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。 |
ThresholdType |
此 API 支援 Mono for Android 基礎結構,並不適合直接從您的程式代碼使用。 |
TransparentRegion |
會傳回 Region,代表完全透明之 Drawable 的一部分。 (繼承來源 Drawable) |
方法
ApplyTheme(Resources+Theme) |
將指定的主題套用至這個 Drawable 及其子系。 (繼承來源 Drawable) |
CanApplyTheme() |
這個類別會使用 或 |
ClearAnimationCallbacks() |
這個類別會使用 或 |
ClearColorFilter() |
拿掉這個可繪製的色彩篩選。 (繼承來源 Drawable) |
Clone() |
建立並傳回這個 對象的複本。 (繼承來源 Object) |
CopyBounds() |
傳回新 Rect 中可繪製界限的複本。 (繼承來源 Drawable) |
CopyBounds(Rect) |
傳回呼叫端) 所配置之指定 Re (ct 中可繪製界限的複本。 (繼承來源 Drawable) |
Dispose() |
這個類別會使用 或 |
Dispose(Boolean) |
這個類別會使用 或 |
Draw(Canvas) |
將 AnimatedVectorDrawable 繪製到指定的畫布中。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetConstantState() |
|
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetHotspotBounds(Rect) |
填 |
GetOutline(Outline) |
呼叫 以取得可繪製專案,以填入定義其繪圖區域的大綱。 (繼承來源 Drawable) |
GetPadding(Rect) |
傳回填補這個 Drawable 所建議的內嵌,以將內容放在可繪製的界限內。 (繼承來源 Drawable) |
GetState() |
描述目前狀態,做為 primitve 狀態的聯集,例如 |
Inflate(Resources, XmlReader, IAttributeSet) |
從 XML 資源擴充此 Drawable。 (繼承來源 Drawable) |
Inflate(Resources, XmlReader, IAttributeSet, Resources+Theme) |
從 XML 資源擴充此 Drawable。 (繼承來源 Drawable) |
InflateAsync(Resources, XmlReader, IAttributeSet) |
這個類別會使用 或 |
InflateAsync(Resources, XmlReader, IAttributeSet, Resources+Theme) |
這個類別會使用 或 |
InvalidateSelf() |
使用目前的 |
JavaFinalize() |
當垃圾收集判斷對象沒有其他參考時,由物件上的垃圾收集行程呼叫。 (繼承來源 Object) |
JumpToCurrentState() |
如果這個 Drawable 會在狀態之間轉換動畫,請要求它立即跳到目前狀態,並略過任何作用中的動畫。 (繼承來源 Drawable) |
Mutate() |
讓這個可繪製的可變。 (繼承來源 Drawable) |
Notify() |
喚醒正在等候此物件的監視器的單一線程。 (繼承來源 Object) |
NotifyAll() |
喚醒正在等候此物件監視器的所有線程。 (繼承來源 Object) |
OnBoundsChange(Rect) |
如果您根據界限而有所不同,請覆寫子類別中的此專案以變更外觀。 (繼承來源 Drawable) |
OnLayoutDirectionChanged(Int32) |
當可繪製的版面配置方向變更時呼叫。 (繼承來源 Drawable) |
OnLevelChange(Int32) |
如果您根據層級而有所不同,請覆寫子類別中的此專案以變更外觀。 (繼承來源 Drawable) |
OnStateChange(Int32[]) |
如果您辨識指定的狀態,請覆寫子類別中的此專案,以變更外觀。 (繼承來源 Drawable) |
RegisterAnimationCallback(Animatable2AnimationCallback) |
這個類別會使用 或 |
Reset() |
將 AnimatedVectorDrawable 重設為動畫工具中指定的開始狀態。 |
ScheduleSelf(Action, Int64) |
這個類別會使用 或 |
ScheduleSelf(IRunnable, Int64) |
使用目前的 |
SetAlpha(Int32) |
指定可繪製的 Alpha 值。 0 表示完全透明,而 255 表示完全不透明。 |
SetBounds(Int32, Int32, Int32, Int32) |
指定可繪製的周框。 (繼承來源 Drawable) |
SetCallback(Drawable+ICallback) |
將 |
SetColorFilter(Color, PorterDuff+Mode) |
指定色彩和 Porter-Duff 模式做為此可繪製的色彩篩選。 (繼承來源 Drawable) |
SetColorFilter(ColorFilter) |
指定可繪製的選擇性色彩篩選。 |
SetDither(Boolean) |
設定為 true,讓繪製到每個色彩元件少於 8 位的裝置時,可繪製的色彩。 (繼承來源 Drawable) |
SetFilterBitmap(Boolean) |
設定為 true,讓可繪製的點陣圖在縮放或旋轉時,使用雙向取樣來篩選其點陣圖。 (繼承來源 Drawable) |
SetHandle(IntPtr, JniHandleOwnership) |
設定 Handle 屬性。 (繼承來源 Object) |
SetHotspot(Single, Single) |
指定可繪製的熱點位置。 (繼承來源 Drawable) |
SetHotspotBounds(Int32, Int32, Int32, Int32) |
如果熱點與可繪製界限不同,請設定其限制範圍。 (繼承來源 Drawable) |
SetLayoutDirection(LayoutDirection) |
設定這個可繪製的版面配置方向。 (繼承來源 Drawable) |
SetLevel(Int32) |
指定可繪製的層級。 (繼承來源 Drawable) |
SetState(Int32[]) |
指定可繪製的一組狀態。 (繼承來源 Drawable) |
SetTint(Int32) |
指定這個可繪製的色調色彩。 (繼承來源 Drawable) |
SetTintBlendMode(BlendMode) |
指定這個可繪製的色調混合模式。 (繼承來源 Drawable) |
SetTintList(ColorStateList) |
指定這個可繪製的色調色彩做為色彩狀態清單。 (繼承來源 Drawable) |
SetTintMode(PorterDuff+Mode) |
指定這個可繪製的色調混合模式。 (繼承來源 Drawable) |
SetVisible(Boolean, Boolean) |
設定這個可繪製專案是否可見。 (繼承來源 Drawable) |
Start() |
啟動可繪製的動畫。 |
Stop() |
停止可繪製的動畫。 |
ToArray<T>() |
這個類別會使用 或 |
ToString() |
傳回物件的字串表示。 (繼承來源 Object) |
UnregisterAnimationCallback(Animatable2AnimationCallback) |
這個類別會使用 或 |
UnregisterFromRuntime() |
這個類別會使用 或 |
UnscheduleSelf(Action) |
這個類別會使用 或 |
UnscheduleSelf(IRunnable) |
使用目前的 |
Wait() |
讓目前的線程等到喚醒為止,通常是藉由 <em>notified</em> 或 <em>interrupted</em> 來喚醒。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是<透過em>notified</em或em>interrupted</em>>,或<直到經過一定數量的實時為止。 (繼承來源 Object) |
明確介面實作
IJavaPeerable.Disposed() |
這個類別會使用 或 |
IJavaPeerable.DisposeUnlessReferenced() |
這個類別會使用 或 |
IJavaPeerable.Finalized() |
這個類別會使用 或 |
IJavaPeerable.JniManagedPeerState |
這個類別會使用 或 |
IJavaPeerable.SetJniIdentityHashCode(Int32) |
這個類別會使用 或 |
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
這個類別會使用 或 |
IJavaPeerable.SetPeerReference(JniObjectReference) |
這個類別會使用 或 |
擴充方法
JavaCast<TResult>(IJavaObject) |
執行 Android 執行時間檢查的類型轉換。 |
JavaCast<TResult>(IJavaObject) |
這個類別會使用 或 |
GetJniTypeName(IJavaPeerable) |
這個類別會使用 或 |