十年網(wǎng)站開發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營維護(hù)+專業(yè)推廣+無憂售后,網(wǎng)站問題一站解決
https://cloud.tencent.com/developer/ask/125248? (百分?jǐn)?shù)越小越透明)

Android布局分析工具HierarchyView
??http://www.2cto.com/kf/201404/296960.html
布局優(yōu)化
??http://www.infoq.com/cn/articles/android-optimise-layout
Android使用include/merge/ViewStub優(yōu)化布局
http://www.111cn.net/sj/android/87027.htm??
List的item布局、Dialog的自定義布局的寬高設(shè)置是無效的,要用minXXX來指定寬高。
1. ?畫UI的原則
能簡則簡,能用一個(gè)控件搞定的事情,不要用多個(gè)控件。
能抽則抽,可以抽取復(fù)用的屬性或布局就抽取. ?
style:抽屬性 ? ? ?include:抽布局(如果想讓include布局指定位置,就得給include套一個(gè)布局)
2. ?資源
【Android源碼】資源加載AssetManager源碼分析 -- app是如何加載資源以及... - 簡書
Android插件化之資源加載機(jī)制 | 病已的博客
?? 在android項(xiàng)目里,資源放在res文件夾下,資源可以是圖片、xml等,不同類型的資源放在不同
的文件下,如下圖所示
? ?
很多人都不知道的東西:values下的dimens.xml,strings.xml,styles.xml,attr.xml文件,其實(shí)
名字可以自己定義,而且完全可以寫在一個(gè)xml文件里,可以發(fā)現(xiàn)每個(gè)xml的根標(biāo)簽都是resources,只是
為了便于管理和閱讀,分成不同的xml文件。
在XML中引用資源
@[android:]anim/?
???????@[android:]drawable/?
@[android:]layout/
@[android:]menu/
@[android:]layout/?
? ? ? @[android:]menu/???
@[android:]style/
? ? ? ??@[android:]string/?
@[android:]color/ ?
如果加上android:表示調(diào)用系統(tǒng)的資源,系統(tǒng)本身就帶了一些十分常用的、豐富的資源(包括圖片
布局、動(dòng)畫等),對于一些demo演示,可以直接調(diào)用系統(tǒng)的資源以節(jié)省時(shí)間。
在代碼中引用資源
Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
InputStream in = getAssets().open("11.txt");?
關(guān)于Android 獲得圖片的總結(jié)? ?http://www.oschina.net/code/snippet_4873_4437
2-1 ?自定義圖形資源(發(fā)揮想象)
⑴shape標(biāo)簽:利用這個(gè)標(biāo)簽可以繪制基本的圖形,如矩形、圓形、環(huán)形、直線
????? 案例1:橫幅廣告切換圓點(diǎn)
???????????????? ???????????????????? ???????????? ????????
?????效果如右圖所示 ?
?
??????案例2:自定義環(huán)形滾動(dòng)條? ?
????????
???????? ???????? ???????????????????? ???????????????? ???????? ????????????????????
? ?
效果如右圖所示

幾個(gè)參數(shù)需要理解一下:
◆?innerRadiusRatio :內(nèi)半徑比 ? = ?圓的內(nèi)半徑 / 控件的寬度,一般取3.

◆?thickne***atio :厚度比? ?= ?圓的厚度?/ 控件的寬度
? ?
? ??
?案例3:圓角矩形???
經(jīng)常用來作為背景使用
???????? ???? ???????????? ???? ???? ? ????
補(bǔ)充擴(kuò)展:http://kofi1122.blog.51cto.com/2815761/521605?? 介紹了shape子標(biāo)簽
???????
3. ?狀態(tài)選擇器selector
?作用:管理資源(圖片、顏色),根據(jù)控件所處的狀態(tài)顯示資源。
應(yīng)用場景:如在textview點(diǎn)擊的時(shí)候,變換顏色或背景,可以讓用戶知道有沒有點(diǎn)擊上。
定義步驟:
1)在res/drawable目錄下創(chuàng)建xml文件,選擇selector標(biāo)簽。

點(diǎn)擊finish,會(huì)自動(dòng)生成如下xml文件:

2)定義item標(biāo)簽,表示不同狀態(tài)下選擇器指向的資源。
■item既可以指向drawable資源,也可以指向color資源(不能直接寫顏色值,要定義在
color標(biāo)簽里,transparent除外)。
■item的狀態(tài)有很多,有的是短暫的、臨時(shí)的狀態(tài)(如pressed等),有的是永久的狀態(tài)
(如enabled、selected等)。
■一個(gè)xml文件里可以有多個(gè)item,但是默認(rèn)的item(沒有指明狀態(tài)的)一定要放到最后
?(千萬記住了)
? ?■xml中各個(gè)item的資源可以保持一致,要么都是drawable,要么都是color,也可以即是
drawable又是color,只要綁定這個(gè)選擇器的屬性同時(shí)支持圖片和顏色,如background。
示例1:指向color資源的選擇器
?
示例2:指向drawable資源的選擇器 ?

4. 自定義進(jìn)度條樣式
還是使用系統(tǒng)自帶的水平進(jìn)度條樣式
??
但是在它的基礎(chǔ)上要修改一下它的樣式
?
其實(shí),舉一反三,系統(tǒng)任何的組件,都可以自定義它的樣式。
Inflate:
1)inflate的parent不為null,view會(huì)自動(dòng)添加到parent中。
final ViewGroup newView = (ViewGroup) LayoutInflater.from(this).inflate(
? ? ? ? ? ? R.layout.list_item_example, mContainerView, false);
? ? ??
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。