安卓的style(样式) 和主题(Theme) 是安卓界面设置的重要部分,个人觉得安卓的开发比JavaPC软件更加灵活,但是也更加麻烦,安卓的样式在本工程项目res / values / style.xml 文件中,样式文件可以让你自定义自己组建的样式,也可以定义全家组件的样式,比如,设置透明,设置字体颜色,设置程序没有状态栏,背景色等等,功能很强大,大多数有关于组建外观的,都可以用style设置,还不知道可不可以设置多个style.xml文件,但是我觉得有一个文件足够,虽然我的等级还没到大神的地步,也不太清楚,下面来介绍如何设置全局组件和局部组件样式
1. 全局样式(Theme):
<!-- 全局字体样式-->
<style name="DefaultFontStyle">
<item name="android:textSize">18px</item>
<item name="android:textColor">#0000CC</item>
</style>
<!-- name属性就是这个style的名字 -->
<!-- 全局背景色-->
<style name="DefaultBgColor" parent="@style/DefaultFontStyle">
<item name="android:background">#F2F2F2</item>
</style>
<!-- parent是代表继承的style样式,系统已经给定义了很多默认的样式我们可以直接用 -->
<!-- 全局样式-->
<style name="DefaultStyle" parent="@style/DefaultBgColor">
</style>
2. 局部样式:
<style name="MyImageView" >
<item name="android:windowBackground">@android:color/transparent</item>
</style>
<!-- 设置透明 -->
<style name="MyButtonStyle">
<item name="android:background">@android:color/transparent</item>
</style>
这里在style文件中定义自己的ImageView和Button样式,然后我我们在写Activity 文件组件要用到的时候就这样引用它:
<ImageView
android:id="@+id/imageView2"
style="@style/MyImageView"
android:layout_width="wrap_content"
android:layout_height="fill_parent"
android:src="@drawable/titlecard3" />
当然也可以对单个Activity进行设置,这个时候我们就要在本工程的根目录下的 AndroidManifest.xml 文件中写了,这个文件包含了本安卓应用所有注册了的 Activity,方法如下:
<activity android:name=".AccountManageActivity"
android:theme="@style/DefaultStyle">
关于继承样式:
如果一个TextView自己设置了样式,它的ViewGroup设置了样式,activity设置了主题,application设置了主题,那么到底是通过怎么一个顺序来应用这些样式呢?
它会先读取自己样式的值,对于自己没有的样式向上查找第一个找到的值即为要采取的值。依次读取的顺序为View自己的样式->上一层ViewGroup的属性值->上上层ViewGroup的属性值->…->activity主题->activity主题。