现在的位置: 首页 > 综合 > 正文

Android自定义Theme&style

2015年11月13日 ⁄ 综合 ⁄ 共 2047字 ⁄ 字号 评论关闭

style样式

Android 的样式资源放在 /res/valus 目录下,样式资源的根元素是resources.../元素,该元素内可以包含多个style.../元素,每个style.../元素定义一个样式,style.../元素指定如下两个属性:

  1. name:指定样式的名称
  2. 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>

抱歉!评论已关闭.