Drawable 類別

定義

Drawable 是「可以繪製的專案」的一般抽象概念。

[Android.Runtime.Register("android/graphics/drawable/Drawable", DoNotGenerateAcw=true)]
public abstract class Drawable : Java.Lang.Object
[<Android.Runtime.Register("android/graphics/drawable/Drawable", DoNotGenerateAcw=true)>]
type Drawable = class
    inherit Object
繼承
Drawable
衍生
屬性

備註

Drawable 是「可以繪製的專案」的一般抽象概念。 您通常會將 Drawable 當作擷取的資源類型來處理,以便將專案繪製到螢幕;Drawable 類別提供一般 API 來處理可能採用各種形式的基礎視覺資源。 android.view.View不同於 ,Drawable 沒有接收事件或與用戶互動的任何功能。

除了簡單的繪圖之外,Drawable 還提供一些泛型機制,讓其用戶端與正在繪製的內容互動:

<ul>li 呼叫#setBounds方法 <var>必須</var>,才能告訴 Drawable 繪製的位置,以及它應該有多大。>< 所有 Drawables 都應該遵守要求的大小,通常只要調整其影像即可。 用戶端可以使用 和 #getIntrinsicWidth 方法來尋找某些 Drawables 的慣用#getIntrinsicHeight大小。

<li> 方法 #getPadding 可以傳回一些 Drawables 資訊,說明如何框出放置在其中的內容。 例如,要成為按鈕小工具框架的 Drawable,必須傳回正確放置標籤本身的邊框間距。

<li> 方法 #setState 可讓用戶端告訴要繪製的 Drawable,例如「焦點」、「已選取」等。某些可繪製專案可能會根據選取的狀態修改其影像。

<li> 方法 #setLevel 可讓用戶端提供可修改 Drawable 的單一連續控制器,例如電池電量或進度等級。 某些可繪製專案可能會根據目前的層級修改其影像。

<li> A Drawable 可以透過 Callback 介面回呼至其客戶端來執行動畫。 所有客戶端都應該支援此介面(透過 #setCallback),讓動畫能夠運作。 執行這項操作的簡單方式是透過和 android.widget.ImageViewandroid.view.View#setBackground(Drawable)系統設施。 </ul>

雖然應用程式通常看不到,但 Drawables 可能採用各種形式:

<ul><li><b>Bitmap</b>:最簡單的可繪製、PNG 或 JPEG 影像。 <li><b>Nine Patch</b>:P NG 格式的延伸模組可讓它指定如何伸展和將東西放在其中的資訊。 <li><b>Vector</b>:XML 檔案中定義為一組點、線條和曲線的可繪製專案,以及其相關聯的色彩資訊。 這種類型的可繪製可調整,而不會遺失顯示器品質。 <li><b>Shape</b>:包含簡單的繪圖命令,而不是原始點陣圖,以便在某些情況下更妥善地調整大小。 <li><b>圖層</b>:復合可繪製,它會在彼此頂端繪製多個基礎可繪製。 <li><b>States</b>:根據其狀態選取一組可繪製的複合可繪製專案。 <li><b>層級</b>:復合可繪製,可根據其層級選取一組可繪製的其中一個。 <li><b>Scale</b>:具有單一子系可繪製的複合繪製單位,其整體大小會根據目前的層級進行修改。 </ul>

“Custom”><h3>自定義可繪製專案</h3>

所有版本的 Android 都允許擴充 Drawable 類別,並在運行時間使用,以取代架構提供的可繪製類別。 android.os.Build.VERSION_CODES#N API 24從 開始,自定義可繪製類別也可用於 XML。

<strong>Note:</strong> Custom 可繪製類別只能從您的應用程式套件記憶體取。 其他應用程式將無法載入它們。

自定義可繪製類別至少必須在 Drawable 上實作抽象方法,而且應該覆寫 Drawable#draw(Canvas) 方法以繪製內容。

自定義可繪製類別可以透過多種方式在 XML 中使用: <ul><li> 使用完整類別名稱做為 XML 元素名稱。 針對這個方法,自定義可繪製類別必須是公用最上層類別。

&lt;com.myapp.MyCustomDrawable xmlns:android="http://schemas.android.com/apk/res/android"
                android:color="#ffff0000" /&gt;

</li li>>< 使用 <em>drawable</em> 作為 XML 元素名稱,並從 em> 類別</em> 屬性指定完整類別名稱。< 這個方法可用於公用最上層類別和公用靜態內部類別。

&lt;drawable xmlns:android="http://schemas.android.com/apk/res/android"
                class="com.myapp.MyTopLevelClass$InnerCustomDrawable"
                android:color="#ffff0000" /&gt;

</li></ul>

<div class=“special reference”><h3>Developer Guides</h3>

如需如何使用可繪製專案的詳細資訊,請參閱 Canvas 和 Drawables 開發人員指南。 如需建立可繪製資源的資訊和範例(可在程式代碼中載入的 XML 或點陣圖檔案),請閱讀 可繪製的資源 檔。

</div>

android.graphics.drawable.DrawableJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

Drawable()

Drawable 是「可以繪製的專案」的一般抽象概念。

Drawable(IntPtr, JniHandleOwnership)

建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。

屬性

Alpha

取得可繪製的目前Alpha值。

AutoMirrored

指出當配置方向為 RTL 由右至左時,是否會自動鏡像此 Drawable。 -或- 設定當其版面配置方向為 RTL(由右至左)時,是否會自動鏡像此 Drawable。

Bounds

傳回可繪製的界限 Rect。 -或- 指定繪製的周框。

Callback

傳回附加至這個 Drawable 的目前 Callback 實作。

ChangingConfigurations

傳回組態參數的遮罩,此可繪製參數可能會變更,因此需要重新建立它。 -或- 設定組態參數的遮罩,此可繪製參數可能會變更,需要重新建立它。

Class

傳回這個 Object的運行時間類別。

(繼承來源 Object)
ColorFilter

傳回目前的色彩篩選條件,如果沒有設定,則 null 傳回 。

Current

Drawable 是「可以繪製的專案」的一般抽象概念。

DirtyBounds

傳回可繪製的髒界限 Rect。

Handle

基礎Android實例的句柄。

(繼承來源 Object)
HasFocusStateSpecified

指出這個可繪製專案是否至少有一個明確指定 android.R.attr#state_focused的狀態規格。

IntrinsicHeight

傳回可繪製的內部高度。

IntrinsicWidth

傳回可繪製的內建寬度。

IsFilterBitmap

Drawable 是「可以繪製的專案」的一般抽象概念。

IsProjected

這個可繪製的要求投影。

IsStateful

指出這個可繪製專案是否會根據狀態變更其外觀。

IsVisible

Drawable 是「可以繪製的專案」的一般抽象概念。

JniIdentityHashCode

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
JniPeerMembers

Drawable 是「可以繪製的專案」的一般抽象概念。

LayoutDirection

傳回這個 Drawable 的已解析版面配置方向。

Level

擷取目前的層級。

MinimumHeight

傳回這個 Drawable 建議的最小高度。

MinimumWidth

傳回這個 Drawable 建議的最小寬度。

Opacity

傳回這個 Drawable 的不透明度/透明度。

OpticalInsets

傳回內嵌此 Drawable 所建議的配置內嵌,以在版面配置期間搭配對齊作業使用。

PeerReference

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
ThresholdClass

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

ThresholdType

此 API 支援適用於 Android 的 Mono 基礎結構,並不適合直接從您的程式代碼使用。

TransparentRegion

會傳回 Region,代表完全透明的 Drawable 部分。

方法

ApplyTheme(Resources+Theme)

將指定的主題套用至這個 Drawable 及其子系。

CanApplyTheme()

Drawable 是「可以繪製的專案」的一般抽象概念。

ClearColorFilter()

拿掉此可繪製的色彩篩選。

Clone()

建立並傳回這個 對象的複本。

(繼承來源 Object)
CopyBounds()

傳回新 Rect 中可繪製界限的複本。

CopyBounds(Rect)

傳回指定之 Rect 中可繪製界限的複本(由呼叫端所配置)。

CreateFromPath(String)

從檔案路徑名稱建立可繪製的 。

CreateFromPathAsync(String)

Drawable 是「可以繪製的專案」的一般抽象概念。

CreateFromResourceStream(Resources, TypedValue, Stream, String)

使用指定的資源和值,從輸入數據流建立可繪製的 ,以判斷密度資訊。

CreateFromResourceStream(Resources, TypedValue, Stream, String, BitmapFactory+Options)

使用指定的資源和值,從輸入數據流建立可繪製的 ,以判斷密度資訊。

CreateFromResourceStreamAsync(Resources, TypedValue, Stream, String)

Drawable 是「可以繪製的專案」的一般抽象概念。

CreateFromResourceStreamAsync(Resources, TypedValue, Stream, String, BitmapFactory+Options)

Drawable 是「可以繪製的專案」的一般抽象概念。

CreateFromStream(Stream, String)

從輸入數據流建立可繪製的

CreateFromStreamAsync(Stream, String)

Drawable 是「可以繪製的專案」的一般抽象概念。

CreateFromXml(Resources, XmlReader)

從 XML 檔案建立可繪製的 。

CreateFromXml(Resources, XmlReader, Resources+Theme)

從 XML 檔案建立可繪製的 。

CreateFromXmlAsync(Resources, XmlReader)

Drawable 是「可以繪製的專案」的一般抽象概念。

CreateFromXmlAsync(Resources, XmlReader, Resources+Theme)

Drawable 是「可以繪製的專案」的一般抽象概念。

CreateFromXmlInner(Resources, XmlReader, IAttributeSet)

從 XML 檔內建立。

CreateFromXmlInner(Resources, XmlReader, IAttributeSet, Resources+Theme)

從 XML 檔內建立。

Dispose()

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
Dispose(Boolean)

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
Draw(Canvas)

在範圍中繪製(透過 setBounds 設定)尊重選擇性效果,例如 Alpha(透過 setAlpha 設定)和色彩篩選(透過 setColorFilter 設定)。

Equals(Object)

指出其他物件是否「等於」這個物件。

(繼承來源 Object)
GetConstantState()

ConstantState傳回保留這個 Drawable 共享狀態的實例。

GetHashCode()

傳回此物件的雜湊碼值。

(繼承來源 Object)
GetHotspotBounds(Rect)

填入 outRect 熱點界限。

GetOutline(Outline)

呼叫 以取得可繪製的 ,以填入定義其繪圖區域的大綱。

GetPadding(Rect)

傳回填補這個 Drawable 所建議的內嵌,以將內容放在可繪製界限內。

GetState()

將目前狀態描述為 primitve 狀態的聯集,例如 android.R.attr#state_focusedandroid.R.attr#state_selected等。

Inflate(Resources, XmlReader, IAttributeSet)

從 XML 資源擴充此 Drawable。

Inflate(Resources, XmlReader, IAttributeSet, Resources+Theme)

從 XML 資源擴充此 Drawable。

InflateAsync(Resources, XmlReader, IAttributeSet)

Drawable 是「可以繪製的專案」的一般抽象概念。

InflateAsync(Resources, XmlReader, IAttributeSet, Resources+Theme)

Drawable 是「可以繪製的專案」的一般抽象概念。

InvalidateSelf()

使用目前的 Callback 實作來重繪此 Drawable。

JavaFinalize()

當垃圾收集決定不再參考物件時,垃圾收集行程在 物件上呼叫。

(繼承來源 Object)
JumpToCurrentState()

如果此 Drawable 會在狀態之間轉換動畫,請要求它立即跳至目前狀態,並略過任何作用中的動畫。

Mutate()

使這個可繪製的可變。

Notify()

喚醒正在等候此物件監視器的單一線程。

(繼承來源 Object)
NotifyAll()

喚醒正在等候此物件監視器的所有線程。

(繼承來源 Object)
OnBoundsChange(Rect)

如果您根據界限而有所不同,請覆寫子類別中的此專案以變更外觀。

OnLayoutDirectionChanged(Int32)

當可繪製的已解析版面配置方向變更時呼叫。

OnLevelChange(Int32)

如果您根據層級而有所不同,請覆寫子類別中的此專案以變更外觀。

OnStateChange(Int32[])

如果您辨識指定的狀態,請覆寫子類別中的此專案以變更外觀。

ResolveOpacity(Int32, Int32)

傳回兩個來源不透明度的適當不透明度值。

ScheduleSelf(Action, Int64)

Drawable 是「可以繪製的專案」的一般抽象概念。

ScheduleSelf(IRunnable, Int64)

使用目前的 Callback 實作,讓此 Drawable 排程。

SetAlpha(Int32)

指定可繪製的 Alpha 值。

SetBounds(Int32, Int32, Int32, Int32)

為 Drawable 指定周框。

SetCallback(Drawable+ICallback)

Callback 對象系結至這個 Drawable。

SetColorFilter(Color, PorterDuff+Mode)

指定色彩和 Porter-Duff 模式做為此可繪製的色彩篩選。

SetColorFilter(ColorFilter)

指定可繪製的選擇性色彩篩選。

SetDither(Boolean)

設定為 true,在繪製到每個色彩元件少於 8 位的裝置時,可繪製的色彩。

SetFilterBitmap(Boolean)

設定為 true,讓可繪製的篩選其點陣圖在縮放或旋轉時使用雙線性取樣。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetHotspot(Single, Single)

指定可繪製的熱點位置。

SetHotspotBounds(Int32, Int32, Int32, Int32)

如果作用點與可繪製界限不同,請設定作用點所限制的界限。

SetLayoutDirection(LayoutDirection)

設定這個可繪製的版面配置方向。

SetLevel(Int32)

指定可繪製的層級。

SetState(Int32[])

指定可繪製的一組狀態。

SetTint(Int32)

指定這個可繪製的色調色彩。

SetTintBlendMode(BlendMode)

指定這個可繪製的色調混合模式。

SetTintList(ColorStateList)

指定這個可繪製的色調色彩做為色彩狀態清單。

SetTintMode(PorterDuff+Mode)

指定這個可繪製的色調混合模式。

SetVisible(Boolean, Boolean)

設定此 Drawable 是否可見。

ToArray<T>()

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
ToString()

傳回物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
UnscheduleSelf(Action)

Drawable 是「可以繪製的專案」的一般抽象概念。

UnscheduleSelf(IRunnable)

使用目前的 Callback 實作讓此 Drawable 未排程。

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

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
IJavaPeerable.DisposeUnlessReferenced()

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
IJavaPeerable.Finalized()

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
IJavaPeerable.JniManagedPeerState

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

Drawable 是「可以繪製的專案」的一般抽象概念。

(繼承來源 Object)

擴充方法

JavaCast<TResult>(IJavaObject)

執行 Android 執行時間檢查的類型轉換。

JavaCast<TResult>(IJavaObject)

Drawable 是「可以繪製的專案」的一般抽象概念。

GetJniTypeName(IJavaPeerable)

Drawable 是「可以繪製的專案」的一般抽象概念。

適用於