V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
zoharSoul
V2EX  ›  Android

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

  •  
  •   zoharSoul · 143 天前 · 4642 次点击
    这是一个创建于 143 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

    13 条回复    2024-07-03 17:32:42 +08:00
    Eba
        1
    Eba  
       143 天前
    这个不知道你说的是魔改的系统还是官方的系统 官方的话都有主题市场 有对应的主题制作工具 只需要上传相应的素材就行 字体也是素材
    zoharSoul
        2
    zoharSoul  
    OP
       143 天前
    @Eba #1 官方的, 我的意思是这个原理是什么啊?
    就是是怎么实现实时修改系统字体并且让 app 感知的?
    Eba
        3
    Eba  
       143 天前
    @zoharSoul 官方的就不清楚了 没有研究过 我只弄过那种主题的
    zoharSoul
        4
    zoharSoul  
    OP
       143 天前
    @Eba #3
    是的, 说的就是主题的
    noahhhh
        5
    noahhhh  
       143 天前
    RikkaW
        6
    RikkaW  
       143 天前
    应该是完全自己发明的,具体是怎样就没人知道了(

    Flutter 、浏览器不受影响是因为它们是直接去读取 fonts.xml
    zoharSoul
        7
    zoharSoul  
    OP
       143 天前
    @noahhhh #5 感谢大佬, 我研究一下..
    zoharSoul
        8
    zoharSoul  
    OP
       143 天前
    @RikkaW #6 现在就是用户期望能和系统的一致, 要不孤零零一个 app 和其他的不一样, 显得很突兀
    T.T
    Niizuki
        9
    Niizuki  
       143 天前
    我记得最早 miui 改字体也是要重启的,后来就不用了
    zoharSoul
        10
    zoharSoul  
    OP
       143 天前
    @Niizuki #9 是的, 最早好像就是直接替换的字体文件, 后来不知道是怎么搞得...
    Kobayashi
        11
    Kobayashi  
       143 天前 via Android
    system fonts 主字体是 symlink ,link 到 data 下哪里来了,记不大清了。
    wjr2012
        12
    wjr2012  
       143 天前
    这个应该和修改主题颜色一个原理吧,所有能看到的东西都是绘制出来的。修改字体后系统会调用配置变更的回调接口,所有实现了这个接口的页面都去做界面重绘的动作。
    wjr2012
        13
    wjr2012  
       143 天前
    自己开发的软件,Text 组件如果没有指定字体,那么就会使用系统默认字体重绘组件自身。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2649 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 20ms · UTC 03:24 · PVG 11:24 · LAX 19:24 · JFK 22:24
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.