style样式
Android 的样式资源放在 /res/valus 目录下,样式资源的根元素是resources.../元素,该元素内可以包含多个style.../元素,每个style.../元素定义一个样式,style.../元素指定如下两个属性:
- name:指定样式的名称
- parent:指定样式所继承的父样式,当继承某个父样式时,该样式将会获得父样式汇总完全的全部格式。当然,当前样式也可以覆盖父样式中的中指定的格式。style.../元素内部可包含多个item.../元素,每个item.../元素定义一个格式项
实现代码如下:
<resources xmlns:android="http://schemas.android.com/apk/res/android"> <style name="style1"> <item name="android:textSize">20sp</item> <item name="android:textColor">#00d</item> </style> <style name="style2"> <item name="android:background">#ee6</item> <item name="android:padding">8dp</item> <item name="android:textColor">#000</item> </style> </resources> <!-- 布局文件代码 --> <!-- 指定使用style的代码 --> <EditText android:id="@+id/edit2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="second" style="@style/style2" />
主题资源 Theme
主题资源theme和样式style的代码格式一样,可以用在同一个xml文件中,实现代码如下:
<style name="LlpTheme"> <!-- 设置没有标题 --> <item name="android:windowNoTitle">true</item> <!-- 设置全屏 --> <item name="android:windowFullscreen">true</item> <!-- 设置边框,window_boder 文件放在 drawable 目录下 --> <item name="android:windowFrame">@drawable/window_boder</item> <!-- 设置背景 --> <item name="android:windowBackground">@drawable/actionbar_camera_icon</item> </style>
其中 window_boder 的文件在drawable中,代码如下:
<?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle" > <!-- 设置填充颜色 --> <solid android:color="#0fff" /> <!-- 设置四周的内边框 --> <padding android:bottom="7dp" android:left="7dp" android:right="7dp" android:top="7dp" /> <!-- 设置边框 --> <stroke android:width="10dip" android:color="#f00" /> </shape>
自定义主题Theme
自定义全局主题:在AndroidManifest文件中的application中加入如下代码:
<application android:allowBackup="true" android:icon="@drawable/ic_launcher" android:label="@string/app_name" android:theme="@style/LlpTheme" > ... </application>
自定义某个Activity主题:如果只想要对某一个Activity使用某个主题,则在AndroidManifest文件中Activity中设置
<!-- 使用自带的主题 --> <activity android:theme="@android:style/Theme.Dialog"> ... </activity>
主题继承
Android的主题同样支持继承,如果开发过程中还想利用某个主题,然后对它的局部进行修改,则可以通过继承系统主题来是实现自定义主题,代码如下:
<style name="LlpTheme" parent="@android:style/Theme.Dialog"> ... </style>