VectorDrawable 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
這讓你可以根據 XML 向量圖建立可繪製的圖。
[Android.Runtime.Register("android/graphics/drawable/VectorDrawable", DoNotGenerateAcw=true)]
public class VectorDrawable : Android.Graphics.Drawables.Drawable
[<Android.Runtime.Register("android/graphics/drawable/VectorDrawable", DoNotGenerateAcw=true)>]
type VectorDrawable = class
inherit Drawable
- 繼承
- 屬性
備註
這讓你可以根據 XML 向量圖建立可繪製的圖。
<strong>Note:</strong> 為了優化重繪效能,每個 VectorDrawable 會建立一個點陣快取。 因此,所指的同一個 VectorDrawable 意味著共用相同的點陣快取。 如果這些參考大小不一致,位圖會在每次大小變更時重新建立並重新繪製。 換句話說,如果 VectorDrawable 用於不同尺寸,建立多個 VectorDrawables(每個尺寸一個)會更有效率。
VectorDrawable 可以用 XML 檔案定義,並包含元素 <vector> 。
向量可繪製圖包含以下元素:
<dt><vector></dt<>DL dd><>用於定義可<繪製向量 dl><dt<android:name>/dt<>dd>定義此向量可繪製的名稱。</dd><dt><android:width/dt><dd>用於定義可繪圖的內在寬度。 這支援所有通常以 dp 指定的維度單位。</dd><dt>android:height</dt><dd>用於定義可繪圖的內在高度。 這支援所有通常以 dp 指定的維度單位。</dd><dt>android:viewportWidth</dt><dd>用於定義視窗空間的寬度。 視窗基本上就是虛擬畫布,路徑就是在那裡繪製的。</dd><dt>android:viewportHeight</dt><dd>用於定義視窗空間的高度。 視窗基本上就是虛擬畫布,路徑就是在那裡繪製的。</dd><dt>android:tint</dt><dd>要在可繪圖上作為色調的顏色。 預設情況下,不會上色。</dd><dt>android:tintMode</dt><dd>色調顏色的 Porter-Duff 混合模式。 預設是src_in。</dd><dt>android:autoMirrored</dt><dd>表示當繪製可繪圖的佈局方向為 RTL(右至左)時是否需要鏡像。 預設為假。</dd><dt>android:alpha</dt><dd>這個可繪圖的不透明度。 預設是 1.0。</dd></dl></dd></dl>
<dl><dt><<group>/dt><dd>定義一組路徑或子群,外加轉換資訊。 轉換定義在與視窗相同的座標中。 轉換的順序是按尺度、旋轉、再平移的順序進行。
<dl><dt>android:name</dt<>dd>定義了該團體的名稱。</dd><dt><android:rotation/dt><dd>群的旋轉度數。 預設值是 0。</dd><dt>android:pivotX</dt><dd>樞軸的 X 座標,用於群的縮放與旋轉。 這在視窗空間中定義。 預設值是 0。</dd><dt>android:pivotY</dt><dd>軸點的 Y 座標,用於群的縮尺與旋轉。 這在視窗空間中定義。 預設值是 0。</dd><dt>android:scaleX</dt><dd>X 座標上的比例尺度。 預設是 1。</dd><dt>android:scaleY</dt><dd>Y座標上的比例尺。 預設是 1。</dd><dt>android:translateX</dt><dd>X 座標上的平移量。 這在視窗空間中定義。 預設值是 0。</dd><dt>android:translateY</dt><dd>Y座標上的平移量。 這在視窗空間中定義。 預設值是 0。</dd></dl></dd></dl>
<dl><dt><<path>/dt><dd>定義要繪製的路徑。
<dl><dt>android:name</dt<>dd>定義了路徑的名稱。</dd><dt><android:pathData/dt><dd>定義路徑資料,格式與 SVG 路徑資料中的「d」屬性完全相同。 這在視窗空間中定義。</dd><dt>android:fillColor</dt><dd>指定填滿路徑的顏色。 可以是顏色,或像SDK 24+那樣,是色彩狀態清單或漸層色(參見 android.R.styleable#GradientColor 和 android.R.styleable#GradientColorItem)。 如果這個屬性被動畫化,動畫設定的任何值都會覆蓋原本的值。 若未指定此特性,則不會繪製路徑填充。</dd><dt>android:strokeColor</dt><dd>指定繪製路徑輪廓所用的顏色。 可以是顏色,或像SDK 24+那樣,是色彩狀態清單或漸層色(參見 android.R.styleable#GradientColor 和 android.R.styleable#GradientColorItem)。 如果這個屬性被動畫化,動畫設定的任何值都會覆蓋原本的值。 若未指定此特性,則不會繪製路徑輪廓。</dd><dt>android:strokeWidth</dt><dd>寬度 路徑劃。 預設值是 0。</dd><dt>android:strokeAlpha</dt><dd>路徑筆劃的不透明度。 預設是 1。</dd><dt>android:fillAlpha</dt><dd>填充路徑的不透明度。 預設是 1。</dd><dt>android:trimPathStart</dt><dd>從起點開始修剪路徑的比例,範圍從0到1。 預設值是 0。</dd><dt>android:trimPathEnd</dt><dd>從末端開始修剪路徑的比例,範圍從0到1。 預設是 1。</dd><dt>android:trimPathOffset</dt><dd>Shift 修剪區域(允許顯示區域包含起始與結束),範圍從 0 到 1。 預設值是 0。</dd><dt>android:strokeLineCap</dt><dd>設定筆劃路徑的線帽:臀部、圓弧、方形。 預設是屁股。</dd><dt>android:strokeLineJoin</dt><dd>設定線條 連接以形成一筆劃路徑:斜角、圓形、斜角。 預設是斜切。</dd><dt>android:strokeMiterLimit</dt><dd>設定行程路徑的斜接極限。 預設是4。</dd><dt>android:fillType</dt><dd>對於 SDK 24+,設定路徑的 fillType。 類型可以是「偶奇」或「非零」。 它們的行為與 SVG 的「填充規則」特性相同。 預設值是非零。 更多細節請參見 FillRuleProperty</dd></dl></dd>
</dl>
<dl><dt><<clip-path>/dt><dd>定義路徑為當前剪輯。 請注意,剪輯路徑僅適用於目前的群組及其子群組。
<dl><dt>android:name</dt<>dd>定義剪輯路徑的名稱。</dd><dd>Animatable:沒有。</dd><dt>android:pathData</dt<>dd>定義剪輯路徑,與 SVG 路徑資料中的「d」屬性相同格式。</dd><dd>Animatable:是的。</dd></dl></dd<>/dl><li>這裡有一個簡單的向量繪製工具,位於這個 vectordrawable.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>
</li><h4>梯度支撐</h4> 我們支援三種梯度類型: android.graphics.LinearGradient、、 android.graphics.RadialGradient或 android.graphics.SweepGradient。
我們支援三種磁磚模式 android.graphics.Shader.TileMode:CLAMP、重複、鏡像。
所有屬性均列於 android.R.styleable#GradientColor。 請注意,不同屬性對不同類型的梯度有關聯。
<table border=“2” 對齊=“中心” cellpadding=“5”>thead><tr><th>線性漸變</th<>>垂直漸變/th 掃蕩 漸變<</<>th><>/tr<>/thead<>tr td>><startColor </td<>td>startColor</td td>startColor</td>><</tr><tr<>td>centercolor</td><td td><centerColor/<td<>td>center</td<>/tr<>tr td<>>結束顏色</td<>td>結束顏色</td td 結束顏色/td<>td>結束顏色</td<>/tr><tr td>><類型</td<>td>< 類型/td td 類型/td td>類型</td<<>>/tr><tr td>><tileMode/td<>>td tile模式<</td td><td tdtileMode/td></tr><tr td>><startX</td td>><centerX</td td centerX/td<>td>centerX</td<>/tr<>tr<>td>startY</td><td>centerY</td>><td centerY</td></tr><tr td<>>endX</td td><>gradientRadius</td><>TD/TD<>/TR<>TR TD<>>ENDY</td<>td></td td></td></td></tr></table><<>
另外請注意,如果定義了任何顏色項目 android.R.styleable#GradientColorItem ,則 startColor、centerColor 和 endColor 都會被忽略。
更多細節請參見 android.R.styleable#GradientColor 和 android.R.styleable#GradientColorItem。
這裡有一個簡單的例子,定義線性梯度。
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:startColor="?android:attr/colorPrimary"
android:endColor="?android:attr/colorControlActivated"
android:centerColor="#f00"
android:startX="0"
android:startY="0"
android:endX="100"
android:endY="100"
android:type="linear">
</gradient>
這裡有一個簡單的例子,用顏色項目定義了放射狀漸層。
<gradient xmlns:android="http://schemas.android.com/apk/res/android"
android:centerX="300"
android:centerY="300"
android:gradientRadius="100"
android:type="radial">
<item android:offset="0.1" android:color="#0ff"/>
<item android:offset="0.4" android:color="#fff"/>
<item android:offset="0.9" android:color="#ff0"/>
</gradient>
Java 文件 android.graphics.drawable.VectorDrawable。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。
建構函式
| 名稱 | Description |
|---|---|
| VectorDrawable() |
唯一能統御一切的建造者。 |
| VectorDrawable(IntPtr, JniHandleOwnership) |
用於建立 JNI 物件受管理表示的建構器;由執行時呼叫。 |
屬性
| 名稱 | Description |
|---|---|
| Alpha |
取得繪製物目前的 alpha 值。 (繼承來源 Drawable) |
| AutoMirrored |
當該繪製物件的版面方向為 RTL 從右到左時,是否會自動鏡像。 -或- 設定當該繪製圖的佈局方向為 RTL(右至左)時,是否會自動鏡像。 (繼承來源 Drawable) |
| Bounds |
返回可繪製物的界限,Rect。 -或- 指定繪製的邊界矩形。 (繼承來源 Drawable) |
| Callback |
回傳附加於此繪製物件的目前 |
| ChangingConfigurations |
回傳一個設定參數的遮罩,該可繪製參數可能因此改變,需重新建立。 -或- 設定一個設定參數遮罩,使此可繪製參數可能改變,需重新建立。 (繼承來源 Drawable) |
| Class |
回傳此 |
| ColorFilter |
回傳目前的色彩濾鏡,或者 |
| Current |
取得此可繪製物件或其目前子節點,依其實作選擇。 (繼承來源 Drawable) |
| DirtyBounds |
把可繪圖的髒邊界還回去,Rect。 (繼承來源 Drawable) |
| Handle |
底層 Android 實例的帳號。 (繼承來源 Object) |
| HasFocusStateSpecified |
表示此繪製文件是否至少有一個狀態規範明確指定 |
| IntrinsicHeight |
回傳繪製圖本身的高度。 (繼承來源 Drawable) |
| IntrinsicWidth |
回傳可繪圖的內在寬度。 (繼承來源 Drawable) |
| IsFilterBitmap |
會判斷這個可繪圖是否有啟用點陣圖過濾。 (繼承來源 Drawable) |
| IsProjected |
這個可繪製的可繪製物件是否要求投影。 (繼承來源 Drawable) |
| IsStateful |
表示此可繪圖是否會根據狀態改變外觀。 (繼承來源 Drawable) |
| IsVisible |
判斷可繪圖是否標示為可見。 (繼承來源 Drawable) |
| JniIdentityHashCode |
取得由互通執行時指派給此 Java 對等端的身份雜湊碼。 (繼承來源 Object) |
| JniManagedPeerState |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| JniPeerMembers |
取得用於存取此 Java 綁定成員的 JNI 元資料。 |
| LayoutDirection |
回傳此繪製物件的解析版面方向。 (繼承來源 Drawable) |
| Level |
取回當前關卡。 (繼承來源 Drawable) |
| MinimumHeight |
回傳此繪製圖所示的最低高度。 (繼承來源 Drawable) |
| MinimumWidth |
回傳此可繪圖物建議的最小寬度。 (繼承來源 Drawable) |
| Opacity |
還清這個可繪圖的透明度/透明度。 |
| OpticalInsets |
在插圖中回傳此可繪圖工具建議的佈局插圖,用於排版時的對齊操作。 (繼承來源 Drawable) |
| PeerReference |
取得這個 Java 節點的 JNI 物件參考。 (繼承來源 Object) |
| ThresholdClass |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| ThresholdType |
此 API 支援 Mono for Android 基礎架構,並非直接從你的程式碼中使用。 |
| TransparentRegion |
回傳一個區域,代表繪製物中完全透明的部分。 (繼承來源 Drawable) |
方法
| 名稱 | Description |
|---|---|
| ApplyTheme(Resources+Theme) |
將指定的主題套用到這個可繪圖物及其子體上。 (繼承來源 Drawable) |
| CanApplyTheme() |
報告此可繪圖是否能接受主題。 (繼承來源 Drawable) |
| ClearColorFilter() |
移除了這個可繪製物的色彩濾鏡。 (繼承來源 Drawable) |
| Clone() |
建立並回傳此物件的副本。 (繼承來源 Object) |
| Construct(JniObjectReference, JniObjectReferenceOptions) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| CopyBounds() |
在新的 Rect 中回傳可繪製範圍的副本。 (繼承來源 Drawable) |
| CopyBounds(Rect) |
回傳指定 Rect(由呼叫者分配)中可繪製物件的界限副本。 (繼承來源 Drawable) |
| Dispose() |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| Dispose(Boolean) |
釋放該 Java 節點所持有的資源。 (繼承來源 Object) |
| DisposeUnlessReferenced() |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| Draw(Canvas) |
在可選效果(如 alpha(由 setAlpha 設定)和色彩濾鏡(透過 setColorFilter 設定)內繪製其界限。 |
| Equals(Object) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| Equals(Object) |
表示是否有其他物體「等同」於此物。 (繼承來源 Object) |
| GetConstantState() |
回傳 |
| GetHashCode() |
回傳物件的雜湊碼值。 (繼承來源 Object) |
| GetHotspotBounds(Rect) |
充滿 |
| GetOutline(Outline) |
被呼叫來取得可繪圖物件,以填充定義其繪製區域的輪廓。 (繼承來源 Drawable) |
| GetPadding(Rect) |
在填充中回傳此可繪圖工具建議的插入點,用於將內容置於可繪圖物件的範圍內。 (繼承來源 Drawable) |
| GetState() |
描述當前狀態,作為原始狀態的聯集,例如 |
| Inflate(Resources, XmlReader, IAttributeSet, Resources+Theme) |
從 XML 資源中膨脹這個可繪製物件。 (繼承來源 Drawable) |
| Inflate(Resources, XmlReader, IAttributeSet) |
從 XML 資源中膨脹這個可繪製物件。 (繼承來源 Drawable) |
| InflateAsync(Resources, XmlReader, IAttributeSet, Resources+Theme) |
在任務中運行 Inflate(Resources, XmlReader, IAttributeSet, Resources+Theme) 。 (繼承來源 Drawable) |
| InflateAsync(Resources, XmlReader, IAttributeSet) |
在任務中運行 Inflate(Resources, XmlReader, IAttributeSet) 。 (繼承來源 Drawable) |
| InvalidateSelf() |
用目前 |
| JavaFinalize() |
已淘汰.
當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。 (繼承來源 Object) |
| JumpToCurrentState() |
如果這個可繪製程式會在狀態間轉換動畫,請立即跳到當前狀態並跳過所有正在進行的動畫。 (繼承來源 Drawable) |
| Mutate() |
讓這個可繪製的可變空間。 (繼承來源 Drawable) |
| Notify() |
喚醒一個正在該物件監視器上等待的執行緒。 (繼承來源 Object) |
| NotifyAll() |
喚醒所有等待該物件監視器的執行緒。 (繼承來源 Object) |
| OnBoundsChange(Rect) |
如果你根據界限變化,可以在子職業中覆蓋這個設定,改變外觀。 (繼承來源 Drawable) |
| OnLayoutDirectionChanged(Int32) |
當可繪圖的解析版面方向改變時呼叫。 (繼承來源 Drawable) |
| OnLevelChange(Int32) |
在你的子職業中,如果等級不同,可以改變外觀。 (繼承來源 Drawable) |
| OnStateChange(Int32[]) |
如果你認出指定的狀態,可以覆寫你的子職業來改變外觀。 (繼承來源 Drawable) |
| ScheduleSelf(Action, Int64) |
請求透過可繪圖的回調來排程動作(若有附加)。 (繼承來源 Drawable) |
| 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) |
| SetPeerReference(JniObjectReference, JniObjectReferenceOptions) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| SetState(Int32[]) |
指定一組可繪製的狀態。 (繼承來源 Drawable) |
| SetTint(Int32) |
指定此繪圖的色調顏色。 (繼承來源 Drawable) |
| SetTintBlendMode(BlendMode) |
指定此繪製物件的色調混合模式。 (繼承來源 Drawable) |
| SetTintList(ColorStateList) |
指定此繪製物件的色調顏色,作為色彩狀態清單。 (繼承來源 Drawable) |
| SetTintMode(PorterDuff+Mode) |
指定此繪製物件的色調混合模式。 (繼承來源 Drawable) |
| SetVisible(Boolean, Boolean) |
設定這個可繪製物件是否可見。 (繼承來源 Drawable) |
| ToArray<T>() |
從這個 Java 陣列包裝器建立一個受管理陣列。 (繼承來源 Object) |
| ToString() |
回傳物件的字串表示。 (繼承來源 Object) |
| UnregisterFromRuntime() |
將此 Java 節點從互通執行時中取消註冊。 (繼承來源 Object) |
| UnscheduleSelf(Action) |
如果有可執行的動作被儲存,則移除該可執行物件,並在附加時請求可繪圖的回調將其取消排程。 (繼承來源 Drawable) |
| UnscheduleSelf(IRunnable) |
使用目前 |
| Wait() |
導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。 (繼承來源 Object) |
| Wait(Int64, Int32) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
| Wait(Int64) |
會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。 (繼承來源 Object) |
明確介面實作
| 名稱 | Description |
|---|---|
| IJavaPeerable.Disposed() |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| IJavaPeerable.Finalized() |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| IJavaPeerable.JniObjectReferenceControlBlock |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniIdentityHashCode(Int32) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
| IJavaPeerable.SetPeerReference(JniObjectReference) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 (繼承來源 JavaObject) |
擴充方法
| 名稱 | Description |
|---|---|
| GetJniTypeName(IJavaPeerable) |
取得實例 |
| JavaAs<TResult>(IJavaPeerable) |
試著強制 |
| JavaCast<TResult>(IJavaObject) |
執行 Android 執行時檢查型別轉換。 |
| JavaCast<TResult>(IJavaObject) |
這讓你可以根據 XML 向量圖建立可繪製的圖。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
試著強制 |