android 設置View控件的全局樣式和風格

jopen 10年前發布 | 50K 次閱讀 Android Android開發 移動開發

android開發部中,不可避免的要設定某一類按鈕的按壓,點擊,聚焦等狀態,通常對于這一類問題而言,最原始的方式就是在布局文件中親自設定,然而對于一個比較大型的項目而言,這種方式造成的可維護性不是很好,因此要盡量做到代碼重用。

 

android項目中通常有3個設置樣式的資源文件夾

values

values-11

values-14

這三個對應不同平臺的sdk版本的樣式,對于android開發中兼容問題而言,要做到“讓最新的api運行在最新的android sdk中”,這是非常好的一種行為。

values文件主要用來設置主題樣式,權限依據平臺細分,也就是說android4.x會最先找values-14再去找values-11最后找values,android2.x最先找values-11最后找values

 

以上是values的設置問題,通常來說,style.xml一般被使用來設置 window和activity主題與樣式,但實際上,style.xml也可以用來設定控件的全局樣式。

 

下面有句名言:

盡量讓主題樣式和頁面風格保持統一,花花綠綠是最丑的風格。

——我,2014年12月07日最終總結

 

對于一個控件而言,如ToggleButton,RadioButton,CheckBox,滾動條顏色,Button,當點擊時狀態切換前后樣式是不一樣的。

 

一般來說,這種設置有2種,如下比如我設置字體:

style.xml-1

    <style name="text_red_20_blod">
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">20.0sp</item>
        <item name="android:textColor">@color/red_text_color</item>
    </style>

這種的局限性和親自到布局文件設置的一樣,只不過少了許多代碼,提高了重用性,可以說只做到了部分全局化。

style.xml-2

<style name="AppTheme" parent="android:Theme.Holo.Light">
        <item name="android:textStyle">bold</item>
        <item name="android:textSize">20.0sp</item>
        <item name="android:textColor">@color/red_text_color</item>
</style>

這種事最全局的,提高了重用性,當然也有他的缺點,這點不可避免,那么在開發中,我們如何選擇呢?

 

  1. style.xml-1 中樣式變化最為頻繁的View風格,這樣做可以避免layout文件中過多的代碼累計,就像css樣式一樣

  2. style.xml-2適用于全局較為統一的View風格,也就是說是一些View的共性的統一,一般來說如ToggleButton,CheckBox,Button等View的狀態切換樣式在同一項目中總是保持著一直的變化效果。也就是說,當我們使用自定義放入ToggleButton切換狀態之后,下次再次使用ToggleButton風格應該和上次風格保持一致才對。

  3. 沖突問題,如果在style.xml-2下使用style.xml-1的內容將如何顯示,這個問題一句話可以描述:”全局性越低,控制權限越高“,也就是說,style.xml-1控制權限高于style.xml-2,因此如果同時影響某一控件的view風格的樣式被設置,那么也就是直接使用 style="@style/xxxx"的權限高于主題權限。

 

try doing it

 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!