Android開發(fā)自定義View整理

? ? ? ? 隨著學(xué)習(xí)的深入病曾,大家對界面,控件的使用也越來越復(fù)雜漾根,有時候泰涂,API提供的view已經(jīng)如法滿足我們的使用需求,對此辐怕,我們可以開發(fā)自定義view逼蒙。網(wǎng)上的開發(fā)自定義View教程很多,這里我們做一下詳細(xì)的梳理寄疏。

首先是牢,我們來了解一下View:

在Android APP中,所有的用戶界面元素都是由View和ViewGroup的對象構(gòu)成的陕截。
View和ViewGroup類是所有控件的父類驳棱。View是繪制在屏幕上的用戶能與之交互的一個對象。而ViewGroup則是一個用于存放其他View(和ViewGroup)對象的布局容器农曲。

View類是Android的一個超類社搅,這個類幾乎包含了所有的屏幕類型驻债。每一個View都有一個用于繪圖的畫布,這個畫布可以進行任意擴展形葬。在游戲開發(fā)中往往需要自定義視圖(View),這個畫布的功能更能滿足我們在游戲開發(fā)中的需要合呐。在android中,任何一個View類都只需重寫onDraw 方法來實現(xiàn)界面顯示笙以,自定義的視圖可以是復(fù)雜的3D實現(xiàn)淌实,也可以是非常簡單的文本形式等。

Android中猖腕,View組件的作用類似于Swing編程中的JPanel拆祈,它只是一個矩形的空白區(qū)域,View組件沒有任何內(nèi)容倘感。對于android應(yīng)用的其他UI組件來說缘屹,它們都繼承了View組件,然后在View組件提供的空白區(qū)域上繪制外觀侠仇。基于Android UI組件的實現(xiàn)原理犁珠,開發(fā)者完全可以開發(fā)出項目定制的組件


上圖是一個簡單的UI布局的層次圖

當(dāng)開發(fā)者打算派生自己的UI組件時逻炊,首先定義一個繼承View基類的子類,然后重寫View類的一個或多個方法

View的布局可以重寫的方法有這些:(摘自百度經(jīng)驗)

常用的方法可以重寫:(摘自百度經(jīng)驗)


自定義空間有三種實現(xiàn)方式:

1.組合控件犁享,簡單說來就是將系統(tǒng)的一些控件組合成一個新的控件便于使用余素。

2.自繪控件,就是自己繪制的控件炊昆,主要是在View的onDraw方法中實現(xiàn)桨吊。

3繼承控件,繼承系統(tǒng)已有的控件凤巨,在原有控件的屬性上视乐,引入新的屬性以滿足需求

其中,最為復(fù)雜的即為第三種敢茁,繼承View佑淀,重寫onDraw方法下面是網(wǎng)上一個簡單的自定義View的例子,用的即為第三種方法:

自定義View代碼:


在布局中加入:


設(shè)置寬高為match_parent彰檬,并設(shè)置背景色和自定顏色伸刃,處理padding:


在onDraw()方法中設(shè)置padding:


運行效果圖:


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市逢倍,隨后出現(xiàn)的幾起案子捧颅,更是在濱河造成了極大的恐慌,老刑警劉巖较雕,帶你破解...
    沈念sama閱讀 218,941評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碉哑,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機谭梗,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評論 3 395
  • 文/潘曉璐 我一進店門忘晤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人激捏,你說我怎么就攤上這事设塔。” “怎么了远舅?”我有些...
    開封第一講書人閱讀 165,345評論 0 356
  • 文/不壞的土叔 我叫張陵闰蛔,是天一觀的道長。 經(jīng)常有香客問我图柏,道長序六,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,851評論 1 295
  • 正文 為了忘掉前任蚤吹,我火速辦了婚禮例诀,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘裁着。我一直安慰自己繁涂,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,868評論 6 392
  • 文/花漫 我一把揭開白布二驰。 她就那樣靜靜地躺著扔罪,像睡著了一般。 火紅的嫁衣襯著肌膚如雪桶雀。 梳的紋絲不亂的頭發(fā)上矿酵,一...
    開封第一講書人閱讀 51,688評論 1 305
  • 那天,我揣著相機與錄音矗积,去河邊找鬼全肮。 笑死,一個胖子當(dāng)著我的面吹牛棘捣,可吹牛的內(nèi)容都是我干的倔矾。 我是一名探鬼主播,決...
    沈念sama閱讀 40,414評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼柱锹,長吁一口氣:“原來是場噩夢啊……” “哼哪自!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起禁熏,我...
    開封第一講書人閱讀 39,319評論 0 276
  • 序言:老撾萬榮一對情侶失蹤壤巷,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后瞧毙,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胧华,經(jīng)...
    沈念sama閱讀 45,775評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡寄症,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,945評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了矩动。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片有巧。...
    茶點故事閱讀 40,096評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖悲没,靈堂內(nèi)的尸體忽然破棺而出篮迎,到底是詐尸還是另有隱情,我是刑警寧澤示姿,帶...
    沈念sama閱讀 35,789評論 5 346
  • 正文 年R本政府宣布甜橱,位于F島的核電站,受9級特大地震影響栈戳,放射性物質(zhì)發(fā)生泄漏岂傲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,437評論 3 331
  • 文/蒙蒙 一子檀、第九天 我趴在偏房一處隱蔽的房頂上張望镊掖。 院中可真熱鬧,春花似錦褂痰、人聲如沸堰乔。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至侦讨,卻和暖如春驶冒,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背韵卤。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評論 1 271
  • 我被黑心中介騙來泰國打工骗污, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人沈条。 一個月前我還...
    沈念sama閱讀 48,308評論 3 372
  • 正文 我出身青樓需忿,卻偏偏與公主長得像,于是被迫代替她去往敵國和親蜡歹。 傳聞我的和親對象是個殘疾皇子屋厘,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,037評論 2 355

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

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 172,167評論 25 707
  • 6、View的繪制 (1)當(dāng)測量好一個View之后月而,我們就可以簡單的重寫 onDraw()方法汗洒,并在 Canvas...
    b5e7a6386c84閱讀 1,895評論 0 3
  • 雨,今天不開心父款,下了一整天溢谤,雨點時而大時而小瞻凤,風(fēng)也陪伴她一整天,從未有過片刻的停歇世杀,路邊阀参,修路工人穿著雨衣繼續(xù)工作...
    不二情書閱讀 197評論 0 0
  • 作用:析構(gòu)函數(shù),幫助我們來進行廢棄對象的內(nèi)存回收機制瞻坝。 1:只能對類使用析構(gòu)函數(shù)蛛壳,一個類也只能有一個析構(gòu)函數(shù)。 2...
    辣個男人OvO閱讀 334評論 0 0
  • 終于還是寫到簡歷篇了湿镀,拖了這么久炕吸,真不是因為博主偷懶。其實簡歷篇在博主寫面試篇1的時候就在考慮勉痴,中間一共寫過4赫模、5...
    紅酒仔閱讀 2,898評論 1 2