android圖標主題開發(Android樣式和主題)
2023-10-08 15:23:59 1
Style 樣式1、Style樣式可以為View或者窗口指定統一的外觀和格式。比如可以指定:寬高尺寸、字體顏色、字號、背景顏色等屬性。
2、方式:style可以通過在xml資源文件中進行定義,然後在布局文件或者代碼中進行引用。
3、定義樣式:在res/values/目錄中創建styles.xml文件,在該xml文件中實現style的定義。
fill_parent wrap_content #0f0f0f
4、Style樣式是可以繼承的,通過style標籤中的parent屬性指定新定義的樣式所繼承的樣式。parent繼承的是系統的一些style樣式。繼承是可選的,可以選擇繼承,也可以選擇不繼承。
5、自定義的Style樣式繼承:可以通過」.「符號進行自定義的屬性繼承,在繼承的基礎上,進行屬性的自定義修改。
#FF0000
6、設計style樣式的目的:在複雜多樣式的控制項使用和項目應用中,保持統一的格式和展現效果,同時降低維護成本。
7、樣式的使用:
單個控制項使用樣式:在布局文件中,使用控制項的地方,添加style屬性。對Activity窗口或者應用使用樣式:在AndroidMainfest.xml文件中為或者元素添加android:theme屬性。1、View控制項使用Style樣式在使用控制項的xml布局文件中,引用樣式名稱。例如
2、對Activity或者應用使用StyleActivity或者整個應用使用Style時,成為之主題:Theme。
使用時需要在AndroidMainfest.xml文件中進行編輯,添加帶有樣式名稱的android:theme屬性。例如
2.1 application應用級別的主題...
2.2 Activity級別的主題對應用中的某一個Activity使用style主題,修改AndroidMainfest.xml文件中的標籤中的android:theme屬性即可。
...
3、Theme的變化和版本區別3.1 普通的Theme主題最常見的普通的Theme主題是:
@android:style/Theme.xxx
3.2 Materail Design主題 API:21material:材料,原料,材質。Android 5.0系統開始,推廣的一種新的設計風格,在android流行起Materail Design風格以後,android系統中的主題也提供了相應的支持:
@android:style/Theme.Material.xxx
3.3 v7包中的AppCompat主題在5.0以後,android推出了appcompat-v7支持包,主要是有一些新控制項,在該支持包中,有相應的主題支持:
@style/Theme.Appcompat.xxx
目前,所有的Activity均繼承自AppCompatActivity,使用的主題也大多是AppCompat的主題。
4、Android界面的組成4.1 狀態欄 StatusBar手機屏幕的最頂端顯示信號,時間,wifi等信息,android系統當中稱之為StatusBar。
4.2 標題欄 TitleBar標題欄位於狀態欄的下方,正常情況下標題欄的布局和主題樣式都是使用系統定義好的。
4.3 操作欄 ActionBarActionBar又稱之為操作欄,操作欄是Android 系統在3.0以後的SDK中引入的,操作欄的作用是取代標題欄,操作欄和標題欄一樣緊挨在狀態欄的下方。
注意:ActionBar是Android 3.0及以上的SDK才引入的,需要設置minSDKVersion = "11",即最小sdk需要大於11版本。另外,支持ActionBar的主題是Theme.Holo及其子主題,包含ActionBar。
4.4 工具欄 ToolBar在2015年Google的IO開發者大會上,發布了關於Material Design風格的控制項,其中ToolBar控制項替代了ActionBar控制項。ActionBar的碎片化問題比較嚴重,因此ToolBar替換了ActionBar。
ToolBar在顯示上與ActionBar並沒有什麼區別,不同之處在於使用Toolbar可以修改狀態欄的顏色。
4.5 導航欄 NavigationBarAndroid系統界面中的底部導航欄,底部的虛擬按鍵。
5、系統提供的常用Style和主題常見的一些系統提供的主題,舉例如下:
背景透明:@android:style/Theme.TranslucentActivity的Dialog主題:@android:style/Theme.Dialog不顯示標題欄:@android:style/Theme.NoTitleBar背景白色:@android:style/Theme.LightHolo背景白色:@android:style/Theme.Holo.Light,適用於彈出的對話框的背景是黑色的,需要設置成該主題屬性。除此之外,還可以兩個或者多個相互組合,比如:
無標題欄,並全屏:@android:style/Theme.NoTitleBar.Fullscreen白色背景且無標題欄:@android:style/Theme.Light.NoTitleBar透明背景且無標題欄:@android:style/Theme.Translucent.NoTitleBar除此之外,還有很多,可以根據需要進行選取嘗試和設置。
4、style中常見的item的屬性4.1 window的item屬性android:windowNoTitle:是否有標題欄,可選值為true/falseandroid:windowFullScreen:是否為全屏,可選值為true/falseandroid:windowIsTranslucent:window是否為全屏,可選值為true/falseandroid:windowBackground:window的背景顏色,