miui 之类的国产 rom, 修改主题字体的是什么原理啊?

78 天前
 zoharSoul

手机也不用重启, 点一下就变了. 是怎么实现的啊?

//背景: flutter 感知不到这种修改的字体, 会导致和原生写的 app 字体不一样, 看起来很突兀

3377 次点击
所在节点    Android
13 条回复
Eba
78 天前
这个不知道你说的是魔改的系统还是官方的系统 官方的话都有主题市场 有对应的主题制作工具 只需要上传相应的素材就行 字体也是素材
zoharSoul
78 天前
@Eba #1 官方的, 我的意思是这个原理是什么啊?
就是是怎么实现实时修改系统字体并且让 app 感知的?
Eba
78 天前
@zoharSoul 官方的就不清楚了 没有研究过 我只弄过那种主题的
zoharSoul
78 天前
@Eba #3
是的, 说的就是主题的
noahhhh
78 天前
RikkaW
78 天前
应该是完全自己发明的,具体是怎样就没人知道了(

Flutter 、浏览器不受影响是因为它们是直接去读取 fonts.xml
zoharSoul
78 天前
@noahhhh #5 感谢大佬, 我研究一下..
zoharSoul
78 天前
@RikkaW #6 现在就是用户期望能和系统的一致, 要不孤零零一个 app 和其他的不一样, 显得很突兀
T.T
Niizuki
78 天前
我记得最早 miui 改字体也是要重启的,后来就不用了
zoharSoul
78 天前
@Niizuki #9 是的, 最早好像就是直接替换的字体文件, 后来不知道是怎么搞得...
Kobayashi
78 天前
system fonts 主字体是 symlink ,link 到 data 下哪里来了,记不大清了。
wjr2012
78 天前
这个应该和修改主题颜色一个原理吧,所有能看到的东西都是绘制出来的。修改字体后系统会调用配置变更的回调接口,所有实现了这个接口的页面都去做界面重绘的动作。
wjr2012
78 天前
自己开发的软件,Text 组件如果没有指定字体,那么就会使用系统默认字体重绘组件自身。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1054550

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX