Drawable 類別
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
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 類別提供一般 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.ImageView
等android.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 元素名稱。 針對這個方法,自定義可繪製類別必須是公用最上層類別。
<com.myapp.MyCustomDrawable xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffff0000" />
</li li>>< 使用 <em>drawable</em> 作為 XML 元素名稱,並從 em> 類別</em> 屬性指定完整類別名稱。< 這個方法可用於公用最上層類別和公用靜態內部類別。
<drawable xmlns:android="http://schemas.android.com/apk/res/android"
class="com.myapp.MyTopLevelClass$InnerCustomDrawable"
android:color="#ffff0000" />
</li></ul>
<div class=“special reference”><h3>Developer Guides</h3>
如需如何使用可繪製專案的詳細資訊,請參閱 Canvas 和 Drawables 開發人員指南。 如需建立可繪製資源的資訊和範例(可在程式代碼中載入的 XML 或點陣圖檔案),請閱讀 可繪製的資源 檔。
</div>
的 android.graphics.drawable.Drawable
Java 檔。
此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。
建構函式
Drawable() |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
Drawable(IntPtr, JniHandleOwnership) |
建立 JNI 物件的 Managed 表示法時使用的建構函式;由運行時間呼叫。 |
屬性
Alpha |
取得可繪製的目前Alpha值。 |
AutoMirrored |
指出當配置方向為 RTL 由右至左時,是否會自動鏡像此 Drawable。 -或- 設定當其版面配置方向為 RTL(由右至左)時,是否會自動鏡像此 Drawable。 |
Bounds |
傳回可繪製的界限 Rect。 -或- 指定繪製的周框。 |
Callback |
傳回附加至這個 Drawable 的目前 |
ChangingConfigurations |
傳回組態參數的遮罩,此可繪製參數可能會變更,因此需要重新建立它。 -或- 設定組態參數的遮罩,此可繪製參數可能會變更,需要重新建立它。 |
Class |
傳回這個 |
ColorFilter |
傳回目前的色彩篩選條件,如果沒有設定,則 |
Current |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
DirtyBounds |
傳回可繪製的髒界限 Rect。 |
Handle |
基礎Android實例的句柄。 (繼承來源 Object) |
HasFocusStateSpecified |
指出這個可繪製專案是否至少有一個明確指定 |
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, BitmapFactory+Options) |
使用指定的資源和值,從輸入數據流建立可繪製的 ,以判斷密度資訊。 |
CreateFromResourceStream(Resources, TypedValue, Stream, String) |
使用指定的資源和值,從輸入數據流建立可繪製的 ,以判斷密度資訊。 |
CreateFromResourceStreamAsync(Resources, TypedValue, Stream, String, BitmapFactory+Options) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
CreateFromResourceStreamAsync(Resources, TypedValue, Stream, String) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
CreateFromStream(Stream, String) |
從輸入數據流建立可繪製的 |
CreateFromStreamAsync(Stream, String) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
CreateFromXml(Resources, XmlReader, Resources+Theme) |
從 XML 檔案建立可繪製的 。 |
CreateFromXml(Resources, XmlReader) |
從 XML 檔案建立可繪製的 。 |
CreateFromXmlAsync(Resources, XmlReader, Resources+Theme) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
CreateFromXmlAsync(Resources, XmlReader) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
CreateFromXmlInner(Resources, XmlReader, IAttributeSet, Resources+Theme) |
從 XML 檔內建立。 |
CreateFromXmlInner(Resources, XmlReader, IAttributeSet) |
從 XML 檔內建立。 |
Dispose() |
Drawable 是「可以繪製的專案」的一般抽象概念。 (繼承來源 Object) |
Dispose(Boolean) |
Drawable 是「可以繪製的專案」的一般抽象概念。 (繼承來源 Object) |
Draw(Canvas) |
在範圍中繪製(透過 setBounds 設定)尊重選擇性效果,例如 Alpha(透過 setAlpha 設定)和色彩篩選(透過 setColorFilter 設定)。 |
Equals(Object) |
指出其他物件是否「等於」這個物件。 (繼承來源 Object) |
GetConstantState() |
|
GetHashCode() |
傳回此物件的雜湊碼值。 (繼承來源 Object) |
GetHotspotBounds(Rect) |
填入 |
GetOutline(Outline) |
呼叫 以取得可繪製的 ,以填入定義其繪圖區域的大綱。 |
GetPadding(Rect) |
傳回填補這個 Drawable 所建議的內嵌,以將內容放在可繪製界限內。 |
GetState() |
將目前狀態描述為 primitve 狀態的聯集,例如 |
Inflate(Resources, XmlReader, IAttributeSet, Resources+Theme) |
從 XML 資源擴充此 Drawable。 |
Inflate(Resources, XmlReader, IAttributeSet) |
從 XML 資源擴充此 Drawable。 |
InflateAsync(Resources, XmlReader, IAttributeSet, Resources+Theme) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
InflateAsync(Resources, XmlReader, IAttributeSet) |
Drawable 是「可以繪製的專案」的一般抽象概念。 |
InvalidateSelf() |
使用目前的 |
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) |
使用目前的 |
SetAlpha(Int32) |
指定可繪製的 Alpha 值。 |
SetBounds(Int32, Int32, Int32, Int32) |
為 Drawable 指定周框。 |
SetCallback(Drawable+ICallback) |
將 |
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) |
使用目前的 |
Wait() |
讓目前線程等候直到喚醒為止,通常是藉由em <notified/em>或<em>interrupted</em> 來喚醒它。<> (繼承來源 Object) |
Wait(Int64, Int32) |
讓目前的線程等到喚醒為止,通常是因為 <em>notified</em> 或 <em>interrupted</em>,或直到經過一定數量的實時為止。 (繼承來源 Object) |
Wait(Int64) |
讓目前的線程等到喚醒為止,通常是因為 <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 是「可以繪製的專案」的一般抽象概念。 |