Android主题与样式

news/2025/1/13 6:35:44/

一、样式

样式是属性的集合,例如定义属性fontColor、fontSize、layout_width、layout_height等,以独立的资源文件存放在XML文件中,并设置样式的名称。

Android Style类似网页设计中的级联样式CSS设计思路,可以让设计与内容分离,并且可以方便的继承、覆盖、重用。


1.未使用Style

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:textColor="#00FF00"android:text="@string/hello" /><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello" /><Button android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="@string/hello"
/></LinearLayout>
上述界面中有三个控件,2个TextView、1个Button。他们的布局宽度layout_width与布局高度layout_height都是wrap_content包裹内容。

下面看看,如何使用Style来改进。


2、使用Style

首先,在res/values/下创建Style XML资源文件,这里创建的Style资源文件名命名为styles.xml,这个可以自己自定义。

styles.xml内容如下:

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="wrap_content"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item></style>
</resources>
其中,style标签中name属性类似CSS中的class name,item标签中的name对应属性的名字,item标签对中的text对应属性的值。


使用样式:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:orientation="vertical"android:layout_width="fill_parent"android:layout_height="fill_parent"><TextViewstyle="@style/wrap_content"android:textColor="#00FF00"android:text="@string/hello" /><TextViewstyle="@style/wrap_content"android:text="@string/hello" /><Button style="@style/wrap_content"android:text="@string/hello"
/></LinearLayout>


3、样式的继承

有两种方式来实现继承,一是通过style的parent属性,二是使用类似CSS中的命名规则来实现。

一、通过parent属性

修改styles.xml

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="wrap_content"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item></style><style name="inherit" parent="wrap_content"><item name="android:textColor">#00FF00</item></style>
</resources>
新增名为inherit的样式,并且继承名为wrap_content样式,也就是说inherit具有wrap_content样式中定义的属性参数。

引用方式:style="@style/inherit"


二、通过命名规则实现

<?xml version="1.0" encoding="utf-8"?>
<resources><style name="wrap_content"><item name="android:layout_width">wrap_content</item><item name="android:layout_height">wrap_content</item></style><style name="wrap_content.inherit"><item name="android:textColor">#00FF00</item></style>
</resources>
通过“.”号实现继承。

引用方式:style="@style/wrap_content.inherit"


二、主题

针对应用中所有Activity或者针对某个Activity设置样式,可以通过编辑AndroidManifest.xml来完成。

1.设置应用中所有Activity活动的主题

<application android:theme="@style/wrap_content">
这样,应用中所有Activity中的所有组件都会默认使用包裹布局。


2.设置某个指定的Activity主题

<activity android:theme="@style/wrap_content">

另外,android提供了许多自带的主题样式。例如Theme.Dialog、Theme.Translucent等等。使用方式也很简单

<activity android:theme="@android:style/Theme.Dialog">



样式属性参考: http://android.toolib.net/reference/android/R.attr.html

主题属性参数:http://android.toolib.net/reference/android/R.styleable.html#Theme

样式与主题参考:http://android.toolib.net/guide/topics/ui/themes.html



http://www.ppmy.cn/news/254305.html

相关文章

Android 风格与主题(style and theme)

1、什么是Style&#xff0c;什么是Theme&#xff1f; Style 和 theme&#xff1a;是一个包含一种 或者 多种格式化 属性 的集合 &#xff0c;并且 style和theme都是资源&#xff0c;存放在res/values 文件夹下 即可&#xff0c;android提供了很多这样的默认资源。你可以来使用…

安卓手机如何使用第三方主题,制作专属自己喜好的主题

此教程以miui系统为例来解析如何使用第三方主题和制作自己喜好的主题。正常官方系统联网后你可以在官方主题选项下载很多各种各样的主题来装扮自己的爱机。当然。这种下载安装替换是没有任何限制的&#xff0c; 但是当你下载网络分享的主题。从SD卡导入后安装他就会提示&#x…

android主题设置

当你设计你的程序的时候&#xff0c;你可以用风格和主题来统一格式化各种屏幕和UI元素。 * 风格是一个包含一种或者多种格式化属性的集合&#xff0c;你可以将其用为一个单位用在布局XML单个元素当中。比如&#xff0c;你可以定义一种风格来定义文本的字号大小和颜色&…

Android 主题

Theme、Style、Attr的基本概念 Attr&#xff1a;属性&#xff0c;风格样式的最小单元&#xff1b; Style&#xff1a;风格&#xff0c;它是一系列Attr的集合用以定义一个View的样式&#xff0c;比如height、width、padding等&#xff1b; Theme&#xff1a;主题&#xff0c;它…

ATK-MD0096-V21使用手册

ATK-0.96’ OLED_V2.0(V2.0 是版本号&#xff0c;下面均以 OLED 表示该产品)是 ALIENTEK 推出的一款高性能 OLED 显示模块&#xff0c;&#xff0c;尺寸小巧&#xff08;27mm26mm&#xff09;&#xff0c;结构紧凑&#xff0c;模块通过一个28P的排针与外部连接。 8080并口模式…

宜兴市委书记封晓春率团访问深兰科技,推动项目落地

1月13日下午&#xff0c;宜兴市市委书记封晓春率考察团赴深兰科技视察调研。市委常委任飞、副市长金磊、市自然资源规划局局长黄朝奎、市发改委主任钱西元、市委办公室副主任徐喆、市政府办公室副主任周利峰等陪同。 调研期间&#xff0c;封晓春饶有兴致地参观了深兰科技企业展…

土地整治

概念 相关业务概念&#xff1a; 土地开发 土地开发是指在保护和改善生态环境、防止水土流失和土地荒漠化的前提下&#xff0c;采用工程、生物等措施&#xff0c;将未利用土地资源开发利用的活动。 土地复垦 土地复垦是指采用工程、生物等措施&#xff0c;对在生产建设过程中因…

[瞭望]从西溪湿地到中山古镇 --看“经营政府”

因为ZJ项目的培训需要&#xff0c;我离开泰安&#xff0c;奔赴大上海。或许是在泰安生活得久了&#xff0c;在上海的日日夜夜&#xff0c;我对它的快节奏深有感触&#xff1a;早晨起得要早&#xff0c;并且要随时带点可以阅读的资料&#xff0c;这样才能在堵车的路上有点事情做…