記得以前學習 qt widget 的時候用 qss 來實現介面的樣式,html 是通過 css 來實現介面的樣式,同理,現在在 android 裡面,它也有一套可以實現介面樣式開發的機制,它提供了 shapedrawable、statelistdrawable、layerdrawable、clipdrawable、lievelistdrawable、transtiondrawable 等等這些可繪製的物件,而且開發者可以通過 xml 來定義這樣物件,然後將 xml 做為資源檔案來使用,從而實現 android 的樣式開發,下面就簡單寫寫各種 drawable 的使用方法,詳細資訊推薦檢視官方文件,官方文件有更加詳盡的解釋。
shapedrawable
可以定製化 view 的形狀,比如 按鈕的圓角、矩形的圓角、矩形的邊框、虛線框等等。
可以實現顏色漸變。
可繪製的影象主要有矩形(預設)、橢圓、線、環形這四種。
statelistdrawable (可根據不同的狀態顯示不同的可繪製物件)
它根據物件的狀態,使用多個不同的影象來表示同乙個圖形。例如,button 小部件可以是多種不同狀態(按下、聚焦或這兩種狀態都不是)中的其中一種,而且可以利用狀態列錶可繪製物件為每種狀態提供不同的背景。
在每個狀態變更期間,將從上到下遍歷狀態列表,並使用第乙個與當前狀態匹配的專案,所以,此選擇並非基於「最佳匹配」,而是選擇符合狀態最低條件的第乙個專案。
levellistdrawable (可根據不同的level值來顯示不同的可繪製物件)
可以通過 maxlevel、minlevel 這兩個屬性來給某乙個可繪製物件定義乙個 level 範圍, 然後再程式中使用 setlevel() 設定可繪製物件的級別值時,會根據 level 的範圍來匹配不同的可繪製物件。
layerdrawable
管理其他可繪製物件陣列的可繪製物件。列表中的每個可繪製物件按照列表的順序繪製,列表中的最後乙個可繪製物件繪於頂部。
transitiondrawable
transitiondrawable 是 layerdrawable 的子類,它只可以管理兩個可繪製資源,可以使得這兩個在切換的時候可以有交錯淡出的效果。
clipdrawable
可以對其他可繪製物件進行剪裁,可以實現進度條的效果。
scaledrawable
可以對可繪製物件進行放縮操作。
insetdrawable
可以在其他可繪製物件上面插入另外乙個可繪製物件。
另外,這些可繪製物件是可以巢狀和混合使用的。
Android樣式的開發 layer list篇
寫於2015 09 09 android樣式的開發 shape篇 android樣式的開發 selector篇 android樣式的開發 layer list篇 android樣式的開發 drawable彙總篇 android樣式的開發 view animation篇 android樣式的開發 pr...
Android樣式的開發 Style篇
android的樣式一般定義在res values styles.xml檔案中,其中有乙個根元素,而具體的每種樣式定義則是通過下的子標籤 其中,statelistanimator指定狀態改變時的動畫,button state list anim material的 如下 xmlns android ...
Android樣式的開發 Style篇
前面鋪墊了那麼多,終於要講到本系列的終篇,整合所有資源,定義成統一的樣式。哪些該定義成統一的樣式呢?舉幾個例子吧 每個頁面標題欄的標題基本會有一樣的字型大小 顏色 對齊方式 內間距 外間距等,這就可以定義成樣式 很多按鈕也都使用一致的背景 內間距 文字顏色 文字大小 文字的對齊方式等,這也可以定義成...