自定義元件 : TypeArray的用法與介紹

androidstarjack發表於2015-01-11
接下來就給大家講解一下TypeArray的用法:
  TypeArray介紹:
TypedArray typeArray = context.obtainStyledAttributes(attrs,
    R.styleable.titlebar, 0, 0);
TypeArray是一個型別陣列,也是一個十分重要的屬性容器。用於存放各種屬性的資源。
其例項化的時候用context.obtainStyledAttributes來得到。
其中attrs是第一個引數,是一個AttributeSet的型別。
其中第二個是一個int[] attrs,
關於這個:api文件上市這樣寫的:

Return a StyledAttributes holding the attribute values in set that are listed in attrs. In addition, if the given AttributeSet specifies a style class (through the "style" attribute), that style will be applied on top of the base attributes it defines.

Be sure to call StyledAttributes.recycle() when you are done with the array.

When determining the final value of a particular attribute, there are four inputs that come into play:

其意為:

 返回一個StyledAttributes控股屬性值設定在attrs上市。此外,如果給定AttributeSet指定一個樣式類(通過“風格”屬性),這種風格將被應用的基本屬性,它定義了。  一定要呼叫StyledAttributes.recycle()當你完成陣列。  在確定一個特定屬性的最終值時,有四個符號是七折作用的:


其中resource是跟標籤,可以在裡面定義若干個declare-styleable,<declare-styleable name="MyView">中name定義了變數的名稱,下面可以再自定義多個屬性,針對<attr name="myTextSize" format="dimension"/>來說,其屬性的名稱為"myTextSize",format指定了該屬性型別為dimension,只能表示字型的大小。

format還可以指定其他的型別比如;

reference   表示引用,參考某一資源ID
string   表示字串
color   表示顏色值
dimension   表示尺寸值
boolean   表示布林值
integer   表示整型值
float   表示浮點值
fraction   表示百分數
enum   表示列舉值
flag   表示位運算

 最後要呼叫ReCycle()方法。

注意的是既然是自定義元件,一定要在XML檔案中寫入:

xmlns:app="http://schemas.android.com/apk/res/com.xxx(包名)"

否則報錯的話,就是未寫入它引起的。

在下面的環節中,會詳細的介紹自定義元件的用法


相關文章