android中的样式和主题(styles和theme)

本文详细介绍了Android中样式和主题的定义与使用方法。样式用于统一控件的颜色、字体等属性,提高代码复用率;主题则应用于整个应用或Activity层面,影响整体UI风格。通过实例展示了如何创建和应用样式及主题。

其实android中的样式和css差不多,都是给一类控件提供一种统一的颜色或者字体等等的。这样可以免去很多的代码重写。大大提高了效率

区别:样式是应用于特定的控件上面,如textview、imageview得得,而主题应用于整个应用或者activity上。

接下来告诉大家Android中怎么定义样式和使用样式:

第一步:添加xml文件;res/values/styles.xml(xml文件名称由自己定义,我这里就定义为styles.xml) 

<?xml version="1.0" encoding="utf-8"?>
<resources>


  <style name="textViewStyle"><!--为样式定义一个全局唯一的名字 -->
  <item name="android:textSize">22sp</item><!--name属性的值是使用textViewStyle样式的控件的属性名-->
  <item name="android:textColor">#FF0000</item>
  </style>
  
  <style name="childStyle" parent="textViewStyle"><!--表示childStyle样式继承 textViewStyle-样式->
  <item name="android:layout_width">fill_parent</item>
  <item name="android:layout_height">wrap_content</item>
  <item name="android:textColor">#00FF00</item>
  </style>
  
  <style name="childStyle.liming"><!--表示liming样式继承 childStyle样式-->
  <item name="android:textColor">#0000FF</item>
  </style>
  
  
  <style name="itcastTheme">
  <item name="android:windowNoTitle">true</item>
  <item name="android:windowFullscreen">?android:windowNoTitle</item>
  <item name="android:textSize">18sp</item>
  <item name="android:textColor">#FFFFFF</item>
  </style>
</resources>


第二步:在layout文件中使用:

<TextView  
    style="@style/childStyle.liming"
    android:text="@string/hello"
    />



主题;

theme的定义和样式的定义一样都在res/values/styles.xml中定义,但是使用的地方有区别

  (1)定义

<style name="itcastTheme">
  <item name="android:windowNoTitle">true</item><!-- 设置窗口没标题-->

    <!-- 设置全屏显示,??android:windowNoTitle表示上面的android:windowNoTitle是什么值那么windowFullscreen就是什么值-->
  <item name="android:windowFullscreen">?android:windowNoTitle</item>
  <item name="android:textSize">18sp</item>
  <item name="android:textColor">#FFFFFF</item>
  </style>

2)使用方法:因为theme是应用于整个app或者activity所以要在清单文件里面使用。

   如果要在整个应用中使用某个主题,代码如下

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.itcast.style"
      android:versionCode="1"
      android:versionName="1.0">
    <application 
android:icon="@drawable/icon" 
android:label="@string/app_name"
android:theme="@style/itcastTheme"
   >
        <activity android:name=".MainActivity"
                  android:label="@string/app_name"  >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>

  </application>
    <uses-sdk android:minSdkVersion="8" />
</manifest> 

   使用在activity中,代码如下:

<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.itcast.style"
      android:versionCode="1"
      android:versionName="1.0">
    <application android:icon="@drawable/icon" android:label="@string/app_name"
   >
        <activity android:name=".MainActivity"
                  android:label="@string/app_name"  android:theme="@style/itcastTheme">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>


    </application>
    <uses-sdk android:minSdkVersion="8" />


</manifest> 





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值