來寫一個(gè)簡單的自定義View茁帽,熟悉一下自定義view的流程

上面每一個(gè)item十嘿,看上去好像都是一個(gè)horizontal的LinearLayout裝載了兩個(gè)ImageView因惭,一個(gè)textView,但是這樣寫未免太麻煩了绩衷,這個(gè)布局可以只用一個(gè)textview實(shí)現(xiàn)蹦魔,但是如果自定義一個(gè)這樣的view該怎么寫呢。

首先建一個(gè)class咳燕,繼承LinearLayout并給出構(gòu)造方法:

```

class SettingItemLayout extends LinearLayout{

public SettingItemLayout(Context context,@NullableAttributeSet attrs) {

super(context,attrs);

initLayout(context,attrs);//這個(gè)方法用來初始化布局

}

}

```

這時(shí)候就要考慮自定義的這個(gè)view里面都有些啥東西:

```

ImageView imgLeft;//左邊的圖標(biāo)

TextView tv;//文字

privateImageViewimg_tip;//右邊的跳轉(zhuǎn)圖標(biāo)

```

有了上面三個(gè)變量勿决,這個(gè)布局就成型了,但是左邊這個(gè)圖標(biāo)需要我們動(dòng)態(tài)設(shè)置招盲,所以還要聲明一個(gè)變量用來從外部設(shè)置圖片資源

```

Drawable drawable;//設(shè)置的圖片標(biāo)資源

private intmHeight,mWidth;//圖標(biāo)的寬低缩、高

```

而以上三個(gè)變量的值,就需要用到一個(gè)東西:attrs(這個(gè)位于values下面,名稱不一定是attrs你可以隨便取咆繁,但是大家都取attrs)讳推,來看看這個(gè)里面有什么:

里面有四個(gè)值,分別對(duì)應(yīng)標(biāo)題的名字玩般,圖標(biāo)的資源文件银觅,圖標(biāo)寬高。關(guān)于format:

```

1. reference:參考某一資源ID。如:@drawable/ic_laucher

2. color:顏色值。

3. boolean:布爾值剧辐。

4. dimension:尺寸值。

5. float:浮點(diǎn)值洒忧。用法:android:fromAlpha ="1.0 ?"android:toAlpha ="0.7"

6. integer:整型值。用法:android:frameDuration ="100"

7. string:字符串帘撰。

8. fraction:百分?jǐn)?shù)跑慕。用法:android:pivotX ="200%"

9. enum:枚舉值。

```

定義一個(gè)屬性可以指定多個(gè)類型摧找,比如背景,可以指定資源也可以指定具體的顏色值:

```

<attr name ="background"format ="reference|color"/>

定義一個(gè)初始化的方法:initLayout(context,attrs);

private void initLayout(Context context,@NullableAttributeSet attrs) {

View.inflate(context,R.layout.base_menu_item_layout, this);//將布局文件加載進(jìn)來牢硅,第三個(gè)參數(shù)this指裝載這個(gè)布局的父容器

imgLeft= (ImageView) findViewById(R.id.img_myzne);

img_tip= (ImageView) findViewById(R.id.img_tip);

tv= (TextView) findViewById(R.id.tv);

TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.base_menu_item);

String title = typedArray.getString(R.styleable.base_menu_item_menu_item_name);

drawable= typedArray.getDrawable(R.styleable.base_menu_item_drawableleft_src);

mWidth=typedArray.getDimensionPixelSize(R.styleable.base_menu_item_drawableleft_width,0);

mHeight=typedArray.getDimensionPixelSize(R.styleable.base_menu_item_drawableleft_height,

0);

//這個(gè)必須調(diào)用

typedArray.recycle();

//然后將獲取到的標(biāo)題和圖標(biāo)資源設(shè)置到控件上

tv.setText(title);

imgLeft.setImageDrawable(drawable);

}

```

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末蹬耘,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子减余,更是在濱河造成了極大的恐慌综苔,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,123評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件位岔,死亡現(xiàn)場離奇詭異如筛,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)抒抬,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,031評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門杨刨,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人擦剑,你說我怎么就攤上這事妖胀。” “怎么了惠勒?”我有些...
    開封第一講書人閱讀 156,723評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵赚抡,是天一觀的道長。 經(jīng)常有香客問我纠屋,道長涂臣,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 56,357評(píng)論 1 283
  • 正文 為了忘掉前任售担,我火速辦了婚禮赁遗,結(jié)果婚禮上署辉,老公的妹妹穿的比我還像新娘。我一直安慰自己吼和,他們只是感情好涨薪,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,412評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著炫乓,像睡著了一般刚夺。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上末捣,一...
    開封第一講書人閱讀 49,760評(píng)論 1 289
  • 那天侠姑,我揣著相機(jī)與錄音,去河邊找鬼箩做。 笑死莽红,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的邦邦。 我是一名探鬼主播安吁,決...
    沈念sama閱讀 38,904評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼燃辖!你這毒婦竟也來了鬼店?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,672評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤黔龟,失蹤者是張志新(化名)和其女友劉穎妇智,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體氏身,經(jīng)...
    沈念sama閱讀 44,118評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡巍棱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,456評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了蛋欣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片航徙。...
    茶點(diǎn)故事閱讀 38,599評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖豁状,靈堂內(nèi)的尸體忽然破棺而出捉偏,到底是詐尸還是另有隱情,我是刑警寧澤泻红,帶...
    沈念sama閱讀 34,264評(píng)論 4 328
  • 正文 年R本政府宣布夭禽,位于F島的核電站,受9級(jí)特大地震影響谊路,放射性物質(zhì)發(fā)生泄漏讹躯。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,857評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望潮梯。 院中可真熱鬧骗灶,春花似錦、人聲如沸秉馏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,731評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽萝究。三九已至免都,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間帆竹,已是汗流浹背绕娘。 一陣腳步聲響...
    開封第一講書人閱讀 31,956評(píng)論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留栽连,地道東北人险领。 一個(gè)月前我還...
    沈念sama閱讀 46,286評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像秒紧,于是被迫代替她去往敵國和親绢陌。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,465評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容