安卓 样式(Style)和主题(Theme)

本文深入探讨了Android中样式和主题资源的定义与使用方法,包括如何在控件中调用样式,以及主题与样式的区别。通过实例展示了如何为控件设置样式和为整个应用或特定Activity设置主题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、样式资源:

存放地点:/ res/ values

根节点:<resource></resource>

如何定义一个样式:

<resources>
	<!-- 定义样式,指定字体大小、颜色 -->
	<style name ="style1">
		<item name="android:textSize">20sp</item>
		<item name="android:textColor">#00d</item>
	</style>

	<!-- 定义样式,指定字体大小、颜色 -->
	<style name ="style1" parent="@style/style1">
		<item name="android:background">#ee6</item>
		<item name="android:padding">8dp</item>

		<!-- 覆盖父样式中指定的属性 -->
		<item name="android:textColor">#000</item>
	</style>
</resources>

如何在控件中调用样式:

<EditText
	.....
	style="@style/style1"
	/>

2、主题资源:

存放地点:/ res/ values

根节点:<resource></resource>

主题与样式区别:

1)主题不能用于单个View控件,主题应对整个应用中所有Activity起作用,或对指定的Activity起作用;

2)主题定义的格式应该是改变窗口外观的格式。

如何定义一个主题:需求,给所有窗口添加边框、背景:

定义 my_style.xml

<resources>
	<!-- 定义样式,指定字体大小、颜色 -->
	<style name ="CrazyTheme" parent="@andoird:style/Theme.Dialog">
		<item name="android:windowNoTitle">true</item>
		<item name="android:windowFullscreen">true</item>
		<item name="android:windowFrame">@drawable/window_border</item>
		<item name="android:windowBackground">@drawable/star</item>
	</style>
</resources>

其中window_border.xml 文件如下:

<shape xmlns:android="http://schemas.android.com/apk/android"  android:shape="rectangle">
	<!-- 设置填充颜色 -->
	<solid android:color="@0fff"/>

	<!-- 设置四周的内边距 -->
	<padding android:left="7dp"
	 padding android;top="7dp"
	 padding android:right="7dp"
	 padding android:bottom="7dp" />

	<!-- 设置边框 -->
	<stroke android:width="10dp" android:color="#f00" />
</shape>

用Java代码实现:

public void onCreate(Bundle savedInstanceState){
	super.onCreate(savedInstanceState);
	setTheme(R.style.CrazyitTheme);
	setContentView(R.layout.linear_layout_3);
}


Tip:一般Theme在 AndroidManifest.xml 文件中设定,比上面方法更容易。

<applicaton  android:theme="@style/CrazyitTheme">

...
</application>


或者在Activity 中设置

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

...
</activity>


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值