android样式:android中的样式和CSS样式作用相似,都是用于为界面定义显示风格。
在Android中定义样式,在res/values/styles.xml文件中添加以下内容
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name=“testStyle”> <!-- 为样式定义一个全局唯一的名字-->
<item name=“android:textSize”>18px</item> <!-- name属性的值为使用了该样式的View控件的属性 -->
<item name="android:textColor">#0000CC</item>
</style>
</resources>
在layout文件中使用上面的android样式:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" ....>
<TextView style="@style/testStyle"
..... />
</LinearLayout>
样式继承:样式也像CSS一样能继承一个父样式,继承后具有父样式的值。如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="textViewStyle">
<item name="android:textColor">#FF0000</item>
<item name="android:textSize">20sp</item>
</style>
<!-- 继承textViewStyle -->
<style name="childStyle" parent="textViewStyle">
<item name="android:autoLink">web</item>
<item name="android:textColor">#00FF00</item>
</style>
<!-- 继承childStyle -->
<style name="childStyle.otherMethod">
<item name="android:textSize">15sp</item>
</style>
</resources>
<style>标签中有一个parent属性。其值设置为父样式即可继承,或者在name属性中前面直接加上父样式的名称 + "." + 自身样式名称
如:<style name="childStyle.otherMethod">
在R文件中会命名为childStyle_otherMethod,直接引用即可
android主题:android中主题也是用于为应用定义显示风格,它的定义和样式的定义相同,如下:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="testTheme">
<!-- 设置无标题 -->
<item name="android:windowNoTitle">true</item>
<!-- 设置全屏显示 -->
<item name="android:windowFullscreen">?android:windowNoTitle</item>
</style>
</resources>
上面“?android:windowNoTitle”中的问号用于引用在当前主题中定义过的资源的值。即前面android:windowNoTitle的值为true的话,这里也为true
下面代码显示在AndroidManifest.xml中如何为应用设置上面定义的主题:
<application android:icon="@drawable/icon" android:label="@string/app_name"
android:theme="@style/testTheme">
......
</application>
除了可以在AndroidManifest.xml中设置主题,同样也可以在代码中设置主题,如下:
setTheme(R.style.themeTest);
在定义上,样式和主题基本相同,但是它们使用的地方不同。
样式用在具体的View,如:EditText、TextView等;
主题通过AndroidManifest.xml中的<application>和<activity>用在整个应用或者某个 Activity,主题对整个应用或某个Activity进行全局性影响。如果一个应用使用了主题,同时应用下的view也使用了样式,那么当主题和样式属性发生冲突时,样式的优先级高于主题。
另外android系统也定义了一些主题,
例如:<activity android:theme=“@android:style/Theme.Dialog”>,该主题可以让Activity看起来像一个对话框,
还有透明主题:@android:style/Theme.Translucent 。如果需要查阅这些主题,可以在文档的referenceandroid-->R.style 中查看。
分享到:
相关推荐
Android_样式(style)&主题(theme)&显示单位
本篇文章是对android中的样式与主题(style&theme)进行了详细的分析介绍,需要的朋友参考下
android style(样式)和theme(主题)设置
NULL 博文链接:https://trinityblood.iteye.com/blog/1743655
安装 Android SDK 和Eclipse 插件 Android应用 android样式和主题(style&theme) Activity生命周期
android:theme=”@android:style/Theme.Dialog” : Activity显示为对话框模式 android:theme=”@android:style/Theme.NoTitleBar” : 不显示应用程序标题栏 android:theme=”@android:style/Theme.NoTitleBar....
一,Theme主题 1.1,Theme主题作用范围 Theme主要是针对应用级别的或者说窗体级别,可以设置应用主题(应用换肤效果)或者Activity的主题;主题是不能应用在某一...Android系统提供的主题在:..\platforms\android-29\
主题(theme)应用到整个Activity和Application的样式,当设置好主题后,Activity或整个程序中的视图都将使用主题中的属性,当主题和样式中的属性发生冲突时,样式的优先级要高于主题。 自定义主题代码如下(styles....
android-styletheme-sample Android 中样式和主题的示例应用程序
就目前的互联网发展来看,已经有越来越多...Android系统的themes.xml和style.xml(位于/base/core/res/res/values/)包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。以下的这段代码属性是在Th
主题是包含一种或多种的格式化属性集合,在程序中调用主题资源可改变窗体的样式,对整个应用或某个Activity存在全局性影响。 定义位置:res/values目录下的styles.xml文件中 标签 <style></style>...
Android系统的themes.xml和style.xml(位于\base\core\res\res\values\)包含了很多系统定义好的style,建议在里面挑个合适的,然后再继承修改。 一、threme android中的主题一般用于窗体级别的,用于改变窗体样式 1、...
或者,对于整个Activity或应用程序,通过将android:theme属性添加到Android清单中的或元素。 样式定义和使用样式res / values / styles.xml <style name =“ LargeRedFont”>#C80000 40sp </ style> ...
parent属性。这就不难理解style是可以继承的。在这里我们继承的是系统默认的EditText属性,只修改了背景和文字颜色而已。...找了一番终于也找到了,所有系统控件的样式是在一个style.xml文件中,这个文件也
1.增加Theme主题 ...android:theme=”@android:style/Theme.Light.NoTitleBar” 效果: 2.新建DatePickerDialog DatePickerDialog datePicker = new DatePickerDialog(MainActivity.this, AlertDialog.THE
继承自Dialog或者直接使用Dialog类来实现,为了方便以后重复使用,建议自己封装一个Dialog类 第一步: 我们知道Android定义个控件或View的样式都是通过定义其style来实现的,查看Android框架中的主题文件,...
中主题的基础是可组合,您可以在其中提供包含样式参数的 , 和实例: MaterialTheme ( typography = type, colors = colors, shapes = shapes) { // Surface, Scaffold, etc} 主题的允许通过XML主题属性对视图进行...
但同时对话框中的内容有更多控制和能控制其生命周期,这时你可以使用带有Dialog样式的Activity来应用你的项目中,想使Activity有对话框那样效果可以在Androidmanifest中添加 Android:style/Theme.Dialog 的主题特性 ...
style name=Theme.FloatActivity parent=android:style/Theme.Dialog> <!-- float_box为我们定义的窗口背景 ,这个不是必须的--> <item name=android:windowBackground>@drawable/float_box </style&...
本文实例讲述了Android编程自定义圆角半透明Dialog的方法。分享给大家供大家参考,具体如下: 效果图如下: ...style name=dialog parent=@android:style/Theme.Dialog> <item name=android