安卓的styles.xml檔案和theme的使用
阿新 • • 發佈:2019-02-05
styles.xml的使用
基礎使用
在一些檢視中,它們具有相同的屬性並且相應屬性具有相同的值,此時可以使用”styles.xml”來統一設定。
定義styles:
<resoures>
<style name="MyStyle">
<item name="android:textColor">@android:color/blue</item>
<item name="android:textSize">18sp</item>
</style>
</resources >
使用styles:
<TextView
style="@style/MyStyle"
android:text="@string/hello_world"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</TextView>
styles的繼承
styles支援繼承,甚至支援多繼承。
styles的繼承方式
styles的繼承方式有如下兩種:
1.在style標籤的屬性表中新增“parent”屬性。
<style name="MyStyle2" parent="@style/MyStyle">
2.使用“.”(點)運算子
<style name="MyStyle.MyStyle2">
styles繼承後的使用
使用時直接引用style的name屬性值
<TextView
style="@style/MyStyle2"/>
或者
<TextView
style="@style/MyStyle.MyStyle2"/>
styles和theme
styles和theme定義方法類似,使用起來也差不多,區別在於theme的作用範圍較大,能更改的屬性也較多
theme的定義
<resources>
<style name="MyTheme" parent="android:Theme.Holo">
<item name="android:textColor">#00aaff</item>
</style>
</resources>
theme的使用
theme的使用和style類似,只不過theme用於定義Application或者某個Activity的theme
*在AndroidManifest.xml中使用
<application android:theme="@android:style/MyTheme">
<activity android:theme="@android:style/MyTheme"/>
</application>
*在Activity.java中呼叫
setTheme(R.style.MyTheme);
Style和Theme的區別
1.由上述程式碼可看出,style主要用於view,而theme則主要用於application和activity
2.在R.attr定義中以window開頭的一些屬性只對theme有效。
3.如果一個應用使用了theme,同時應用下的view也使用了style,那麼當theme與樣式style發生衝突時,style的優先順序高於主題。