android布局的作用,Android UI布局经验总结
如何在Android中動態設置顏色透明?10%20%到100%
Android布局分析工具HierarchyView
Android使用include/merge/ViewStub優化布局
List的item布局、Dialog的自定義布局的寬高設置是無效的,要用minXXX來指定寬高。
1. ?畫UI的原則
能簡則簡,能用一個控件搞定的事情,不要用多個控件。
能抽則抽,可以抽取復用的屬性或布局就抽取.
style:抽屬性 ? ? ?include:抽布局(如果想讓include布局指定位置,就得給include套一個布局)
Android主題切換方案總結
2. ?資源
在android項目里,資源放在res文件夾下,資源可以是圖片、xml等,不同類型的資源放在不同
的文件下,如下圖所示
很多人都不知道的東西:values下的dimens.xml,strings.xml,styles.xml,attr.xml文件,其實
名字可以自己定義,而且完全可以寫在一個xml文件里,可以發現每個xml的根標簽都是resources,只是
為了便于管理和閱讀,分成不同的xml文件。
在XML中引用資源
@[android:]anim/
@[android:]drawable/
@[android:]layout/
@[android:]menu/
@[android:]layout/
@[android:]menu/
@[android:]style/
@[android:]string/
@[android:]color/
如果加上android:表示調用系統的資源,系統本身就帶了一些十分常用的、豐富的資源(包括圖片
布局、動畫等),對于一些demo演示,可以直接調用系統的資源以節省時間。
在代碼中引用資源
Drawable drawable = getResources().getDrawable(R.drawable.ic_launcher);
InputStream in = getAssets().open("11.txt");
2-1 ?自定義圖形資源(發揮想象)
⑴shape標簽:利用這個標簽可以繪制基本的圖形,如矩形、圓形、環形、直線
????? 案例1:橫幅廣告切換圓點
android:shape="oval"
>
效果如右圖所示 ?
案例2:自定義環形滾動條
android:innerRadiusRatio="3"??//內半徑比
android:shape="ring"
android:thickne***atio="10"
android:useLevel="false"?>
android:centerColor="#E04343"
android:endColor="#33FEDCC4"
android:startColor="#33F0F0F0"
android:type="sweep"?/>
效果如右圖所示
幾個參數需要理解一下:
◆?innerRadiusRatio :內半徑比 ? = ?圓的內半徑 / 控件的寬度,一般取3.
◆?thickne***atio :厚度比? ?= ?圓的厚度?/ 控件的寬度
案例3:圓角矩形
經常用來作為背景使用<?xml ?version="1.0"?encoding="utf-8"?>
android:shape="rectangle"
>
3. ?狀態選擇器selector
作用:管理資源(圖片、顏色),根據控件所處的狀態顯示資源。
應用場景:如在textview點擊的時候,變換顏色或背景,可以讓用戶知道有沒有點擊上。
定義步驟:
1)在res/drawable目錄下創建xml文件,選擇selector標簽。
點擊finish,會自動生成如下xml文件:
2)定義item標簽,表示不同狀態下選擇器指向的資源。
■item既可以指向drawable資源,也可以指向color資源(不能直接寫顏色值,要定義在
color標簽里,transparent除外)。
■item的狀態有很多,有的是短暫的、臨時的狀態(如pressed等),有的是永久的狀態
(如enabled、selected等)。
■一個xml文件里可以有多個item,但是默認的item(沒有指明狀態的)一定要放到最后
(千萬記住了)
■xml中各個item的資源可以保持一致,要么都是drawable,要么都是color,也可以即是
drawable又是color,只要綁定這個選擇器的屬性同時支持圖片和顏色,如background。
示例1:指向color資源的選擇器
示例2:指向drawable資源的選擇器
4. 自定義進度條樣式
還是使用系統自帶的水平進度條樣式
style="@android:style/Widget.ProgressBar.Horizontal"
但是在它的基礎上要修改一下它的樣式
其實,舉一反三,系統任何的組件,都可以自定義它的樣式。
Inflate:
1)inflate的parent不為null,view會自動添加到parent中。
final ViewGroup newView = (ViewGroup) LayoutInflater.from(this).inflate(
R.layout.list_item_example, mContainerView, false);
總結
以上是生活随笔為你收集整理的android布局的作用,Android UI布局经验总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2016c语言模拟试卷一,2016年9月
- 下一篇: android 异步刷新 方法,andr