2.簡單寫一下自定義的myview:
public class myview extends view3.布局檔案:public
myview(context context,
@nullable attributeset attrs)
@override
protected void
ondraw(canvas canvas)
xml version=布局檔案xmlns:mystudy=""就是對我們自定義的attrs引入,"1.0"
encoding=
"utf-8"
?>
xmlns:
android
=""xmlns:
tools
=""xmlns:
mystudy
=""android
:layout_width=
"match_parent"
android
:layout_height=
"match_parent"
tools
:context=
"com.example.wangqing.studyattrs.mainactivity"
>
android
:id=
"@+id/id_my"
android
:layout_width=
"wrap_content"
android
:layout_height=
"wrap_content"
mystudy
:textsize=
"14sp"
mystudy
:textcolor=
"#ff22ff"
/>
mystudy屬性就是我們attrs定義的屬性:textsize=
"14sp"
mystudy
:textcolor=
"#ff22ff"
4.進入知識拓展:
001.兩個styleable,同時包含了相同的屬性custom,這時在編譯時會提示attribute 「***」 has already been defined,表示相同屬性重複定義:a.相同styleable name不能再同乙個attr.xml中重複定義,b.styleable name不一致attir name也不能重複定義,attr format屬性不影響重複定義結果。因此可以採用如下方法解決該問題
name="sample">
name="custom"
format="string|reference" />
declare-styleable>
name="sample1">
name="custom"
format="string|reference" />
declare-styleable>
name="custom"
format="string|reference" />
name="sample">
name="custom" />
declare-styleable>
name="sample1">
name="custom" />
declare-styleable>
002.attributeset與typedarray構造方法中的有個引數叫做attributeset(eg: myview(context context, attributeset attrs) )這個引數看名字就知道包含的是引數的集合,那麼我能不能通過它去獲取我的自定義屬性呢?
首先attributeset中的確儲存的是該view宣告的所有的屬性,並且外面的確可以通過它去獲取(自定義的)屬性,怎麼做呢?
其實看下attributeset的方法就明白了,下面看**。
public myview(context context, attributeset attrs)
public mytextview(context context, attributeset attrs)
// ==>use typedarray ...
}
但是,在
android:layout_width="@dimen/dp100"
android:layout_height="@dimen/dp200"
這種情況時attributeset取得值就是乙個不知道的東西,而typedarray依然可以取得對應的值,所以typedarray
是用來簡化我們的工作的,再次建議大家使用typedarray
003.android自定義屬性詳解(網路貼上):
1. reference:參考某一資源id。
(1)屬性定義:
(2)屬性使用:
2. color:顏色值。
(1)屬性定義:
(2)屬性使用:
3. boolean:布林值。
(1)屬性定義:
(2)屬性使用:
4. dimension:尺寸值。
(1)屬性定義:
(2)屬性使用:
5. float:浮點值。
(1)屬性定義:
(2)屬性使用:
6. integer:整型值。
(1)屬性定義:
(2)屬性使用:
" android:drawable = "@drawable/id"
android:pivotx = "50%"
android:pivoty = "50%"
android:framescount = "12"
android:frameduration = "100"
/>
7. string:字串。
(1)屬性定義:
(2)屬性使用:
8. fraction:百分數。
(1)屬性定義:
(2)屬性使用:
"android:interpolator = "@anim/動畫id"
android:fromdegrees = "0"
android:todegrees = "360"
android:pivotx = "200%"
android:pivoty = "300%"
android:duration = "5000"
android:repeatmode = "restart"
android:repeatcount = "infinite"
/>
9. enum:列舉值。
(1)屬性定義:
(2)屬性使用:
"android:orientation = "vertical"
android:layout_width = "fill_parent"
android:layout_height = "fill_parent"
>
10. flag:位或運算。
(1)屬性定義:
注意:屬性定義時可以指定多種型別值。
(1)屬性定義:
(2)屬性使用:
致2015的自己
本來應該是1.1 日寫的文章,現在才開始寫,覺得在不抓緊時間寫的話就又會拖下去,所以趁早。這一年過得比較快,也比較渾渾噩噩就過去了7 個月 我是從 5月份從深圳辭職回來南寧工作的 但是回顧這幾個月的狀態真的是痛苦,莫名其妙的痛苦。1.工資低了。2.國企環境感覺像我這樣的性格內向的人有點彆扭。但是還是...
致過去的自己
如果能夠回到過去,與曾經的自己對話,你最想對過去的自己說些什麼呢?如果時光可以倒轉,過去的事情可以重新來過,你會有不同的做法嘛?時間彷彿總是騎著白馬,匆匆而過,用現實的繩索拉著我們跌跌撞撞,走過屬於自己獨一無二的生活。回想起童年那時候,我們能夠自信的並且喊出我們長大以後的夢想 我要當醫生,去拯救世間...
致過去的自己
如果能夠回到過去,與曾經的自己對話,你最想對過去的自己說些什麼呢?如果時光可以倒轉,過去的事情可以重新來過,你會有不同的做法嘛?時間彷彿總是騎著白馬,匆匆而過,用現實的繩索拉著我們跌跌撞撞,走過屬於自己獨一無二的生活。回想起童年那時候,我們能夠自信的並且喊出我們長大以後的夢想 我要當醫生,去拯救世間...