zoharSoul
V2EX  ›  Android

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

  •  
  •   zoharSoul · Jul 3, 2024 · 10494 views
    This topic created in 863 days ago, the information mentioned may be changed or developed.

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

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

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

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