Android风格(styles)和主题(themes)文件,是影响到整个应用界面美观的因素之一。Styles和Themes都是资源,存放在res/values文件夹下。
Style:是一个包含一种或者多种格式属性的集合,你可以将其应用在布局文件中的单一组件中。比如,我们可以为一个TextView组件自定义一种风格,在这个风格中定义文本的字体大小和颜色等等;也可以使用系统自带的风格。
Theme:是一个包含一种或者多种格式化属性的集合,你可以将其应用在一个或者多个Activity中。比如,我们可以自定义一个Theme,指定窗口框架颜色和面板的前景色和背景色,并为菜单定义可文字的大小和颜色属性,这样就可以将这个Theme应用在我们程序中所有的Activity里。
风格
(1) 自定义style时,在res/value目录下新建一个xml文件(文件名可以随便取),最好取别人一看就知道是做什么的;
(2) 添加<resources></resources>标签;
(3) 在<resources></resources>标签里面添加<style>元素,注意它的名字属性是唯一的;
(4) 在<style>里面定义你想要的风格属性,这些属性可以在类R.attr下找到,每一种属性都需要放在<item>标签下,每一种属性对应一个<item>标签,在标签内部定义该属性的值。
举个例子(styles.xml):
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="info_label">
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_width">wrap_content</item>
<item name="android:textAppearance">@style/TextAppearance.info_label</item>
<item name="android:paddingRight">4dip</item>
</style>
<style name="TextAppearance.info_label">
<item name="android:textSize">14sp</item>
<item name="android:textStyle">bold</item>
</style>
<style
name="mytextstyle" parent="android:TextAppearance.Large">
<item name="android:textColor">#FFFFFF00</item>
<item name="android:textStyle">bold</item>
</style>
</resources>
上面的样式可以在单个组件TextView中应用如下:
<TextView style="@style/info_label"
android:text="@string/oldPinLabel"/>
注意:我们用@符号和?符号来引用资源。地址符@表明我们引用的资源是其它地方定义过的(也许在这个项目中或者在Android框架中)。问号符?表明我们引用的资源的值在当前加载的主题中。这通过以名字引用特定的来完成(比如,panelTextColor使用了分配给panelForegroundColor的相同颜色)。这种技巧只能用在XML资源当中。
主题
主题在定义和引用方式上和风格的定义和引用是一样的,唯一不同的是它们被引用的地方不同。在使用上,主题可以在AndroidManifest.xml文件中的<application>和<activity>标签下使用,还可以通过代码在程序中使用。
在styles.xml文件中定义主题如下:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<style name="myTheme" >
<item name="android:windowBackground">@drawable/transparent_backgroud</item>
<item name="android:windowNoTitle">true</item>
<item name=”android:textSize”>14sp</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
上面代码中定义主题myTheme ,设置窗口背景为透明,无标题全屏,在AndroidManifest.xml中,应用于某个Activity时可以进行如下设置:
<activity android:theme="@style/myTheme">
若是应用到整个应用中的所有Activity的话,就要进行如下设置:
<application android:theme="@style/myTheme ">
也可以在程序中使用setTheme()方法来设定主题,但是要注意setTheme()一定要在setContentView()之前调用。否则设定的主题无法表现出来,可以这样使用:
setTheme(R.style.myTheme);
setContentView(R.layout.main);
之所以这样做,是因为主题是不能动态改变的,系统在绘制程序界面的开始就应该先获得主题的信息,才能绘制,而一旦绘制了,就不能再做改变。
分享到:
相关推荐
nodejs010-nodejs-cryptiles-0.2.2-1.el6.centos.alt.noarch.rpm
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
基于麻雀搜索算法优化的深度置信网络(SSA-DBN)参数调整与数据分类预测——以隐藏层节点、迭代次数和学习率为优化目标的MATLAB实现,基于麻雀搜索算法优化深度置信网络(SSA-DBN)的数据分类预测 优化参数为隐藏层节点、迭代次数和学习率 利用交叉验证抑制过拟合问题 matlab代码, ,SSA-DBN; 参数优化; 隐藏层节点; 迭代次数; 学习率; 交叉验证; 过拟合抑制; MATLAB代码,基于SSA-DBN优化的数据分类预测方法:参数优化与过拟合抑制
BeTheme第一次发布于2014年5月21日,自那时以来,已有数以百万计的人下载了BeTheme,其评分为4.8。这个主题是WooCommerce支持的,在此帮助下,您可以制作一个电子商务网站,还可以制作博客、新闻和其他类型的网站。BeTheme 21.5.6 wordpress主题模板特点:放大器支撑多用途主题500+预制件演示单击演示安装移动友好型主题联络表格7支持自转滑块。
基于S7-200智能控制与组态王4x3界面的书架式堆垛立体车库系统设计与应用,基于S7-200和组态王4x3书架式堆垛式立体库立体车库 ,S7-200; 组态王4x3; 书架式堆垛式立体库; 立体车库,基于S7-200与组态王4x3的立体车库系统
1、文件内容:pykde4-akonadi-4.10.5-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pykde4-akonadi-4.10.5-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
基于28379D的异步电机无速度传感器控制:MD500与MD500E滑模同步调制代码研究,各种代码md500代码,异步电机,基于28379D,带无速度传感器控制,参数辨识,同步调制等功能。 还有md500e代码,滑模无感代码,逆变整流代码 ,核心关键词:md500代码; 异步电机; 28379D; 无速度传感器控制; 参数辨识; 同步调制; md500e代码; 滑模无感控制; 逆变整流代码。,基于28379D的MD500电机异步控制系统与参数辨识软件
"可再生能源驱动的热电联供微网经济运行优化研究:基于具体文献的程序复现与MATLAB粒子群算法应用",含可再生能源的热电联供型微网经济运行优化 有具体文献 程序复现 MATLAB粒子群算法 ,核心关键词: 可再生能源; 热电联供型微网; 经济运行优化; 具体文献; 程序复现; MATLAB粒子群算法。,含可再能源热电联供型微网运行优化策略复现于特定文献中的MATLAB模型研究。
1、文件内容:pyserial-2.6-6.el7.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pyserial-2.6-6.el7.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
finishBitmap.jpg
"英博尔控制器调速软件全面升级,引领行业新风尚",英博尔控制器调速软件全新 ,英博尔; 控制器; 调速软件; 全新,英博尔控制器调速软件全新升级
电机定子模态频率计算方法及公式在Excel表格中的应用,电机定子模态频率计算公式,公式法,exl表格 ,电机定子模态频率计算公式; 公式法; EXL表格,电机定子模态频率计算方法及公式法在Excel表格中的应用
一、项目简介 包含:项目源码、数据库脚本等,该项目附带全部源码可作为毕设使用。 二、技术实现 jdk版本:1.8 及以上 ide工具:IDEA或者eclipse 数据库: mysql5.5及以上 后端:spring+springboot+mybatis+maven+mysql 前端: vue , css,js , elementui 三、系统功能 1、系统角色主要包括:管理员、用户 2、系统功能 主要功能包括: 用户登录注册 首页 个人中心 修改密码 个人信息 用户管理 管理员管理 问卷管理 题目管理 题目统计 问卷调查管理 新闻资讯管理 轮播图管理 问卷调查 新闻资讯 个人中心 问卷调查记录 后台管理 详见 https://flypeppa.blog.csdn.net/article/details/143189415
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
1、文件内容:pulseaudio-esound-compat-10.0-6.el7_9.rpm以及相关依赖 2、文件形式:tar.gz压缩包 3、安装指令: #Step1、解压 tar -zxvf /mnt/data/output/pulseaudio-esound-compat-10.0-6.el7_9.tar.gz #Step2、进入解压后的目录,执行安装 sudo rpm -ivh *.rpm 4、安装指导:私信博主,全程指导安装
免费JAVA毕业设计 2024成品源码+论文+数据库+启动教程 启动教程:https://www.bilibili.com/video/BV1SzbFe7EGZ 项目讲解视频:https://www.bilibili.com/video/BV1Tb421n72S 二次开发教程:https://www.bilibili.com/video/BV18i421i7Dx
一种基于Lifelogging视频的文本标签生成模型.pdf
MATLAB仿真:MIMO系统FLMS算法的优化与实现,一个mimo系统的flms算法的MATLAB仿真 ,Mimo系统; FLMS算法; MATLAB仿真,"MIMO系统FLMS算法MATLAB仿真"
"基于S7-200 PLC的组态王燃油锅炉控制系统:详解梯形图接线原理、IO分配及组态画面图解",基于S7-200 PLC和组态王燃油锅炉控制系统 带解释的梯形图接线图原理图图纸,io分配,组态画面 ,S7-200 PLC; 组态王燃油锅炉控制; 梯形图接线图原理图; IO分配; 组态画面,基于S7-200 PLC的燃油锅炉控制系统原理图及IO分配解析
方便暖通工程师及板换用户了解艾普尔板式换热器选型计算,免费使用。