【03】AI辅助编程完整的安卓二次商业实战-本地构建运行并且调试-二次开发改注册登陆按钮颜色以及整体资源结构熟悉-优雅草伊凡
原生项目复杂就复杂于就算一个颜色的改动可能都比较麻烦,不像普通web项目或者vue项目,其次原生项目安卓Android的环境配置是很复杂的,很多人 第一步可以搞一周 甚至一个月都搞不成功,再次之前说了可以用trae辅助我们编程,但是真正的开发和调试还是得Android studio 离开Android studio 原生安卓项目也是没法运行的,至少trae满足不了,vs要满足也比较麻烦,本篇改颜色和主页图标,本项目代码 毫不夸张的说 就是WhatsApp的初期代码,历史大概有15年了。
概述:本项目是一个基于微服务架构的现代即时通讯解决方案。2025年8月进行了大规模技术升级与重构,并于8-9月期间集中进行兼容性调整与Bug修复,旨在提升系统稳定性、可维护性和未来扩展性。
本次升级的核心是将单体服务拆解为独立、可扩展的微服务。
这是我们的整体目标
这是现目前的样子,差别还是不算大,因为我们第一版设计为了时间考虑,没有改布局,只是对整体配色整体图标进行了设计
先从登陆页面来,需要搜索与登录注册相关的Activity类,找到首页的布局文件,然后修改按钮的背景色为#FB506B。
找到了activity_splash.xml中包含注册按钮的引用,ID为select_register_btn,背景使用了back_elipse_white_line。让我查看完整的布局文件和相关的drawable资源文件,以便修改按钮的背景色。
这是整体布局配色,我们修改了以后
back_elipse_fb506b.xml
,设置了#FB506B的背景色activity_splash.xml
,将登录和注册按钮的background属性从原来的@drawable/back_elipse_white_line修改为新创建的@drawable/back_elipse_fb506b
现在当应用启动时,用户将看到红色(#FB506B)背景的登录和注册按钮。但是发现并没有什么变化,因此这个改动无效。
于是开始从登陆页面 找起来
查看LoginNewActivity的布局文件,因为根据之前的代码分析,应用实际上会跳转到LoginNewActivity而不是显示SplashActivity上的按钮。
首先要从登陆这张页面来看才能看到问题所在。
找到了实际显示的登录界面activity_login_new.xml,登录按钮使用了BossGreenBtn样式。查看styles.xml文件来找到这个样式的定义,以便修改背景色。
styles.xml中BossGreenBtn样式的定义,它使用了bg_btn_green_splash作为背景。查看这个drawable资源文件,以便修改其背景色为#FB506B。
bg_btn_green_splash是一个selector,引用了多个状态的drawable资源。
找到了登录按钮背景色blue5的定义(#0076FE)。现在需要将其修改为#FB506B。这个修改会影响所有使用blue5的地方,包括登录按钮。
为了确保在夜间模式下按钮颜色也正确显示,我需要检查并修改values-night目录下的colors.xml文件中是否也有blue5的定义。
在values-night目录的colors.xml文件中没有找到blue5的定义,所以夜间模式会使用values目录下的定义,我已经修改了那里的颜色。现在我需要确认注册按钮的背景色设置,让我搜索相关的UI元素。
确认blue5颜色已成功修改为#FB506B(位于colors.xml第204行)。现在我需要检查登录按钮使用的BossGreenBtn样式完整定义,以确保颜色设置正确。
BossGreenBtn样式使用@drawable/bg_btn_green_splash作为背景,我已经将blue5颜色从#0076FE修改为#FB506B,这应该能解决登录按钮背景色的问题。让我再检查bg_btn_green_end.xml文件确保所有状态都正确。
需要再次检查bg_btn_green_splash.xml文件的内容,确认它引用的背景资源配置。
修改步骤如下:
这是一座山一样的代码,而且 多个文件控制着布局,不过其实现实中真正很多大项目都是 山一样的代码。
看到多个布局文件中的注册按钮文本颜色是blue2(#5696F7),这可能是用户看到蓝色的原因。让我查看一下activity_login_new.xml的完整内容,确认实际的首页注册登录界面。
下一步我们改主页图标,但是底部图标涉及更换图标,那么就涉及资源问题
在Android项目中查看和整理图像资源,可以通过以下几种方式:
Resource Manager
标签(或通过View
→ Tool Windows
→ Resource Manager
打开)Drawable
分类即可查看所有图像资源Project
面板中展开app/src/main/res
目录drawable/
- 默认密度资源drawable-hdpi/
- 高密度屏幕资源drawable-mdpi/
- 中密度屏幕资源drawable-xhdpi/
- 超高密度屏幕资源drawable-xxhdpi/
- 超超高密度屏幕资源drawable-xxxhdpi/
- 超超超高密度屏幕资源确保图像资源按照不同的屏幕密度正确放置在对应的文件夹中
使用有意义的命名规范,例如:
ic_
前缀表示图标(如 ic_launcher.png
)bg_
前缀表示背景(如 bg_button_normal.png
)img_
前缀表示图片(如 img_avatar_default.png
)Refactor
→ Remove Unused Resources
功能根据你提供的上下文,你的项目包含多个模块(包括gallerylibrary
),需要分别查看每个模块的资源:
gallerylibrary/src/main/res/
├── drawable/
├── drawable-hdpi/
├── drawable-mdpi/
├── drawable-xhdpi/
├── drawable-xxhdpi/
└── drawable-xxxhdpi/
可以通过切换Project视图中的模块来查看不同模块的图像资源。
这样就可以全面地查看和整理项目中的所有图像资源了。
当我打开了资源管理器,发现没有显示出对应的资源就明白这个问题肯定不简单了,可能也是由于项目老旧原因,本项目代码 毫不夸张的说 就是WhatsApp的初期代码,历史大概有15年了。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。