其实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>