android style & theme

本文介绍了Android中样式(Style)和主题(Theme)的概念及其使用方法。样式用于定义UI组件的一组属性,可以在布局文件中复用;主题则定义了整个应用程序或特定Activity的外观和感觉。文章还详细展示了如何创建和应用样式及主题。

大家都知道CSS,Android中也可以为界面定义全局、公用的Style。Styles和Themes都是资源,存放在res/values文件夹下。

Style:是一个包含一种或者多种属性的集合,可以将其作为一个单位用在布局XML中。比如,我们可以自定义TextView的风格——定义文本的字号大小和颜色。

<resources> <!-- textView --> <style name="StyleTextInfo1"> <item name="android:textSize">18.0sp</item> <item name="android:textColor">#ffffffff</item> <item name="android:paddingLeft">0.0dip</item> <item name="android:paddingRight">0.0dip</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_marginTop">3.0dip</item> <item name="android:layout_marginBottom">1.0dip</item> <item name="android:layout_gravity">center_vertical</item> <style><style name="StyleTextInfo1" mce_bogus="1"> <item name="android:textSize">18.0sp</item> <item name="android:textColor">#ffffffff</item> <item name="android:paddingLeft">0.0dip</item> <item name="android:paddingRight">0.0dip</item> <item name="android:layout_width">wrap_content</item> <item name="android:layout_height">wrap_content</item> <item name="android:layout_marginTop">3.0dip</item> <item name="android:layout_marginBottom">1.0dip</item> <item name="android:layout_gravity">center_vertical</item> </style> </resources>

引用:

<!-- 引用定义好的TextView样式,如果这里的属性和样式里定义的属性重复,则这里会替换覆盖掉样式里定义的属性--> <TextView android:id="@+id/traderName" android:text="@string/traderName" style="@style/StyleTextInfo1" mce_style="@style/StyleTextInfo1"/> <Spinner android:id="@+id/traderNameS" android:layout_width="fill_parent" android:layout_height="wrap_content"> </Spinner> </TableRow>

Theme:是一个包含一种或者多种属性的集合,我们可以将其作为一个单位,用在程序中所有的Activity当中或者用在程序中的某个Activity当中。

<style name="newtheme" parent="android:Theme.Black"> <item name="android:windowNoTitle">true</item> <item name="android:textSize">24sp</item> <item name="android:textColor">#FFFF0000</item> <style><style name="newtheme" parent="android:Theme.Black" mce_bogus="1"> <item name="android:windowNoTitle">true</item> <item name="android:textSize">24sp</item> <item name="android:textColor">#FFFF0000</item> </style>

在AndroidManifest.xml中引用:

<activity android:name="com.demo.StyleThemeDemo" android:theme="@style/newtheme"> <intent-filter> <action android:name="android.intent.action.MAIN"/> </intent-filter> </activity>

在代码中引用:

setTheme(R.style.newtheme);

将系统主题或自定义主题添加到Android Manifest中定义的<application>和<activity>元素中,但是主题不能应用在某一个单独的View里。

为了在程序中所有的Activity当中使用Theme,可以打开AndroidManifest.xml 文件,编辑<application>标签。

如果想实现一个Theme,但是想做一些轻微的改变,只需要将这个Theme添加为parent,我们可以按照我们的要求来修改这个Theme,可以修改在Theme.Dialog中定义的每个item元素的值,然后我们 在Android Manifest 文件中使用自定义的名字而不是Theme.Dialog。

如:

<style name="newtheme" parent="android:Theme.Dialog"> <item name="android:windowNoTitle">true</item> <item name="android:textSize">24sp</item> <item name="android:textColor">#FFFF0000</item> </mce:style><style name="newtheme" parent="android:Theme.Dialog" mce_bogus="1"> <item name="android:windowNoTitle">true</item> <item name="android:textSize">24sp</item> <item name="android:textColor">#FFFF0000</item></style>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值