| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> Android更换默认主题 -> 正文阅读 |
|
[移动开发]Android更换默认主题 |
相信刚接触Android开发的同学都很熟悉这个界面。 这是Android Studio创建新项目后,默认的Empty Activity的布局。 不知道有多少同学和我一样觉得App标题和头顶状态栏的紫色很丑。今天的笔记就是记录一下怎么修改主题颜色。 一、找到主题文件我们打开项目的AndroidManifest.xml,可以看到有一行是用来指定主题的。 从这一句可以看出,我们的主题是通过@style资源来指定的。资源路径就在res/values下,名为themes.xml。 如果通过ctrl+左键跳转,会发现有两个。这是因为还有一个是深色主题,在res/values-night目录下也有一个themes.xml。 二、解析主题文件内容在郭霖老师的《第一行代码》中也有提到更换主题颜色,书中的文件内容是这样的:
郭霖老师在书中给出了各个属性代表的位置。这里引用一下Android Material设计图的Color说明。 也就是说,在原来的文件里,各个属性的含义大致如下:
而现在的文件内容是这样的
首先我们可以看到,style的parent是不一样的。这里的parent是Theme.MaterialComponents.DayNight.DarkActionBar。 这里简单介绍一下MaterialComponents。MaterialComponents是Google官方设计团队发布了基于 Material Design 的组件库,是为了让我们开发的程序有一个统一的样式、品牌效应、互动效果以及操作界面产生的动作,是在Android原生组件的基础上添加了更加丰富的功能和显示效果,遵循Android界面设计的规范,能够更方便的设计产品,缩短开发设计时间。 那这些属性的含义如下:
最后一个android:statusBarColor就是系统里的状态栏颜色了,这里状态栏颜色定义了和colorPrimaryVariant一致。 三、更改主题颜色更改主题颜色的方法很简单,他们定义主题颜色的方式都是通过@color调用,所以只需要将你想要的颜色定义到res/colors里再调用即可。 例如,我这样改:
这里我把主题颜色改成了薄荷绿,状态栏颜色改成了白色。 效果如下: 1、修改状态栏文字颜色上面的效果我们会发现一个问题。当状态栏被我设置为白色之后,状态栏上的文字因为也是白色所以看不见了。这时候我们就需要去修改一下状态栏文字的颜色。这里提供Google原生的改变状态栏颜色的方法:
本质就是decorView两个标志位的切换。 然后在onCreate里调用一下
现在就好了 2、删除标题栏现在的app很少会有上方这个标题栏。要删除这个标题栏也很简单,只需要在onCreate()里加入这样一句话
现在就没有标题栏了。 如果整个app里所有的Activity都不想要这个标题栏的话,那么我们还可以统一设置一下。 在之前找到的res/values/theme.xml中,我们有提到style的parent是Theme.MaterialComponents.DayNight.DarkActionBar。 这里就可以看到系统默认是选的有ActionBar的模板,我们只需要换成没有ActionBar的,那么整个App的Activity就都没有标题栏了。
四、小结本篇笔记记录了文件主题的属性含义,如何修改主题颜色,如何修改状态栏文字颜色,如何删除标题栏。希望能对大家有一点帮助。 参考文章: Android透明状态栏与状态栏文字颜色更改 - 简书 (jianshu.com) 【译】为Android设置Material Components主题 - 简书 (jianshu.com) Material Components(MDC)简单使用介绍_fallinux的博客-CSDN博客_material-components-android |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/24 17:04:01- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |