Drawable 詳解
public abstract class Drawable
extends Object
java.lang.Object | |
↳ | android.graphics.drawable.Drawable |
AnimatedStateListDrawable,
AnimationDrawable,
ClipDrawable Drawable是 可以被畫的東西的通用抽象類,多數情況下Drawable一般用作為畫在螢幕上資源;Drawable類提供了一個通用的API去處理優先的各種型別的視覺化資源。與View不同,Drawble 沒有接收事件和使用者互動的能力。 除了簡單的繪畫,Drawable提供了大量的通用機制給客戶端去和正在被繪製的進行互動。
雖然通常在應用中不可見,但Drawables 會以以下幾種形式顯示:
自定義drawables所有版本Android允許Drawable類被擴充套件和用在執行時取代framework提供的drawable。API 24開始,自定義drawables類可以用在XML中。 注意:自定義drawable類只能在你的應用包中使用,其他的應用是不能取載入它們的。 最低限度,自定義drawable類必須實現Drawable的abstract方法和過載draw(Canvas)方法去繪製內容。 自定義drawbles 類可以在XML中以多種形式使用:用完整的類名作為XML元素的名稱。對於這個方法,自定義drawable類必須是public高層級的類。 |
<com.myapp.MyCustomDrawable xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#ffff0000" />
用drawable作為XML元素名並且從類的屬性指定完整路徑名。這個方法可以用在public 高層級類和public static 內部類。
<drawable xmlns:android="http://schemas.android.com/apk/res/android"
class="com.myapp.MyTopLevelClass$InnerCustomDrawable"
android:color="#ffff0000" />
總結
Nested classes(巢狀的類) |
|
---|---|
介面 |
Drawable.Callback 如果想要建立一個動畫繼承 Drawable 的drawable,就實現這個介面 |
類 |
Drawable.ConstantState 這個抽象類被Drawables用來儲存Drawables之間的共享狀態和資料 |
Public constructors (公共建構函式) |
|
---|---|
Drawable() |
Public methods |
|
---|---|
void |
applyTheme(Resources.Theme t) Applies the specified theme to this Drawable and its children. 應用指定的theme(主題)在Drawable和它的孩子 |
boolean |
canApplyTheme() |
void |
clearColorFilter() Removes the color filter for this drawable. 從drawable中移除顏色過濾器 |
final Rect |
copyBounds() Return a copy of the drawable's bounds in a new Rect. 在新的矩形(Rect)返回一個drawable的約束副本 |
final void |
copyBounds(Rect bounds) Return a copy of the drawable's bounds in the specified Rect (allocated by the caller). 在指定的矩形(Rect)返回一個drawable的約束副本 |
static Drawable |
createFromPath(String pathName) Create a drawable from file path name. 從路徑名(pathName)建立一個drawable |
static Drawable |
createFromResourceStream(Resources res, TypedValue value, InputStream is,String srcName, BitmapFactory.Options opts) This method was deprecated in API level P. Prefer the version without an Options object. 這個方法在API P 中已經廢棄了,請使用下面的方法 |
static Drawable |
createFromResourceStream(Resources res, TypedValue value, InputStream is,String srcName) Create a drawable from an inputstream, using the given resources and value to determine density information. 從輸入流建立一個drawable,使用給定的資源和值去決定密度資訊。 |
static Drawable |
createFromStream(InputStream is, String srcName) Create a drawable from an inputstream 從輸入流建立一個drawable |
static Drawable |
createFromXml(Resources r, XmlPullParser parser) Create a drawable from an XML document. 從一個XML檔案中建立一個drawable |
static Drawable |
createFromXml(Resources r, XmlPullParser parser, Resources.Theme theme) Create a drawable from an XML document using an optional 從一個XML文件用Resources.Theme建立一個drawable |
static Drawable |
createFromXmlInner(Resources r, XmlPullParser parser, AttributeSet attrs,Resources.Theme theme) Create a drawable from inside an XML document using an optional 從一個XML文件使用一個可選的Resources.Theme建立一個drawable |
static Drawable |
createFromXmlInner(Resources r, XmlPullParser parser, AttributeSet attrs) Create from inside an XML document. 從一個XML文件內建立 |
abstract void |
draw(Canvas canvas) Draw in its bounds (set via setBounds) respecting optional effects such as alpha (set via setAlpha) and color filter (set via setColorFilter). 在它的約束內繪製,並遵從可選的效果,例如透明度alpha 和顏色過濾器 |
int |
getAlpha() Gets the current alpha value for the drawable. 獲取當前透明度的值 |
final Rect |
getBounds() Return the drawable's bounds Rect. 返回drawable的約束矩形 |
Drawable.Callback |
getCallback() Return the current 返回當前這個Drawable實現的Drawable.Callback |
int |
getChangingConfigurations() Return a mask of the configuration parameters for which this drawable may change, requiring that it be re-created. 返回drawable可能會改變的配置引數,這需要drawable重建 |
ColorFilter |
getColorFilter() Returns the current color filter, or 返回當前的顏色過濾器,返回null如果沒設定的話 |
Drawable.ConstantState |
getConstantState() Return a 返回存有這個Drawable的共享狀態的 |
Drawable |
getCurrent() |
Rect |
getDirtyBounds() Return the drawable's dirty bounds Rect. 返回drawable的髒約束矩形 |
void |
getHotspotBounds(Rect outRect) Populates 使用熱點約束填充外矩形 |
int |
getIntrinsicHeight() Returns the drawable's intrinsic height. 返回drawable的本身高度 |
int |
getIntrinsicWidth() Returns the drawable's intrinsic width. 返回drawable的本身寬度 |
int |
|