Android知识AndroidAndroid开发经验谈

风格(style)和主题(theme)

2016-11-11  本文已影响303人  明慢慢

转载自:http://www.haiyangjy.com

风格、主题的意义

当你设计你的程序的时候,你可以用风格和主题来统一格式化各种屏幕和UI元素。

实现方式

风格和主题都是资源。你可以用android提供的一些默认的风格和主题资源,你也可以自定义你自己的主题和风格资源。

如何新建自定义的风格和主题:
  1. 在res/values 目录下新建一个名叫style.xml的文件。增加一个<resources>根节点。
  2. 对每一个风格和主题,给<style>element增加一个全局唯一的名字,也可以选择增加一个父类属性。在后边我们可以用这个名字来应用风格,而父类属性标识了当前风格是继承于哪个风格。
  3. 在<style>元素内部,申明一个或者多个<item>,每一个<item>定义了一个名字属性,并且在元素内部定义了这个风格的值。
  4. 你可以应用在其他XML定义的资源。
    ——————————————————————————————–
风格

下边是一个申明风格的实例:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style name="SpecialText" parent="@style/Text">
        <item name="android:textSize">18sp</item>
        <item name="android:textColor">#008</item>
    </style>
</resources>
<EditText id="@+id/text1"
 style="@style/SpecialText"
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="Hello, World!" />

现在这个EditText组件的所表现出来的风格就为我们在上边的XML文件中所定义的那样。

主题
<?xml version="1.0" encoding="utf-8"?>
<resources>
 <style name="CustomTheme">
 <item name="android:windowNoTitle">true</item>
 <item name="windowFrame">@drawable/screen_frame</item>
 <item name="windowBackground">@drawable/screen_background_white</item>
 <item name="panelForegroundColor">#FF000000</item>
 <item name="panelBackgroundColor">#FFFFFFFF</item>
 <item name="panelTextColor">?panelForegroundColor</item>
 <item name="panelTextSize">14</item>
 <item name="menuItemTextColor">?panelTextColor</item>
 <item name="menuItemTextSize">?panelTextSize</item>
 </style>
</resources>
<activity android:theme="@android:style/Theme.Dialog">
<style name="CustomDialogTheme" parent="@android:style/Theme.Dialog">
protected void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 ...
 setTheme(android.R.style.Theme_Light);
 setContentView(R.layout.linear_layout_3);
}

如果你打算在程序代码中来加载主界面的主题,那么需要注意主题当中不能包括任何系统启动这个Activity所使用的动画,这些动画将在程序启动前显示。在很多情况下,如果你想将主题应用到你的主界面,在XML中定义似乎是一个更好的办法。

上一篇 下一篇

猜你喜欢

热点阅读