初学Android,使用主题(Theme)资源(二十一)

主题跟样式类似,也是放在路径/res/values下同样以<resource.../>为根元素

同样使用<style.../>元素来定义主题

但是它跟样式的区别在于

主题不能作用于单个的View组件,主题只对整个应用中的所有Activity起作用,或对指定的Activity起作用.

主题定义的格式只能是改变窗口外观的格式,如窗口标题,窗口边框

下面把上一篇的例子稍加改动,在my_style.xml中再定义一个主题

    <style name="Theme">
        <item name="android:windowNoTitle">true</item>
        <item name="android:windowFullscreen">true</item>
        <item name="android:windowFrame">@drawable/window_border</item>
        <item name="android:windowBackground">@drawable/fengjing</item>>
    </style>


在需要调用此主题的界面代码中来调用该主题

    public void onCreate(Bundle savedInstanceState) {
    	setTheme(R.style.Theme);
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

setTheme(R.style.Theme)这句代码一定要在窗体初始化之前,即super.onCreate(savedInstanceState)之前.

另一种使用主题的方式是配置AndroidManifest.xml

    <application
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name" android:theme="@style/Theme">

<application>元素中添加 android:theme="@style/Theme" 属性就可以了

运用主题后,运行效果如下

从上图可以看到,窗体的边框和背景已经改变了

猜你喜欢

转载自chenqiang5206.iteye.com/blog/1628921