zoukankan      html  css  js  c++  java
  • Android的Recovery中font_10x10.h字库文件制作

              任务是要汉化Android中的Recovery,就了解了bootable/recovery/minui/font_10x18.h这个英文字库的来历,最终汉化的时候并没有自己汉字字库,用的github上现成的,但font_10x18.h来历短暂的留存在脑子里边不如记下来,这样会有好处,比如要更改字体风格、更改字体大小、如果要求实现其它非英语语言,都会重新来研究这个!

    先预览一下font_10x18.h:

    struct {
      unsigned width;
      unsigned height;
      unsigned cwidth;
      unsigned cheight;
      unsigned char rundata[];
    } font = {
      .width = 960,
      .height = 18,
      .cwidth = 10,
      .cheight = 18,
      .rundata = {
    0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x7f,0x55,0x82,0x06,0x82,0x02,0x82,0x10,0x82,
    ...........................................................................
    0x84,0x3f,
    0x00,
      }
    };


    文件中有几点:
    ① font 的结果体类型来历
    ② font 中各个元素值由谁决定的
    一点一点来找答案!


    一、
    打开BMFont后,右边的列表是我的字体库,各种不同的字体。选中第一项"Latin+Latin Supplement".
    ①Options->Font Setting:


    图中Size对应结构体中cwidth; 图中Height %对应结构体中cheigh占height的百分比。
    ②Options->Export Options:


    图中Width对应结构体中width;图中Height对应结构体中height;
    ③Options->save bitmap font as..


    然后输入导出的文件名tmp,文件类型默认选.fnt,然后就会发现导出路径多了一个tmp_0.png的文件,那就是字库图片资源。需要的是这个png文件。fnt文件并不是我们需要的!
    二、
    有了tmp_0.png是成功的一半,下面要用到ps的linux版本gimp。
    ①打开gimp,文件->打开 来打开tmp_0.png
    ②文件->导出 输出名字填tmp.c
    ③在弹出的"图像导出C源码"配置对话框做如下配置:


    tmp.c到font.c就差一步了
    三、
    取出android源码中的mkfont.c(bootable/recovery/minui/),然后和tmp.c一起编译:
    一起编译最好的方法是将tmp.c换成头文件tmp.h 然后mkfont.c中添加该头文件!然后gcc mkfon.c
    ./a.out > font.h
    此时打开font.h就会font_10x18.h并无大的差别了。唯一的差别是rundata这个元素,这个是选用的不同字体会生成不同的内容。


    综上所述,可以总结流程图:




    1.《Android Recovery汉化》

          - http://img.zqr.cm/thread-61-1-1.html

    2.《联想A298T专用recovery中文恢复系统》

          - http://bbs.anzhi.com/thread-8076669-1-1.html

    3.《在andriod中加入充电指示》

          - http://blog.csdn.net/shuaiff/article/details/5581127

    4.《Android 的GUI 系统》

          - http://www.cnblogs.com/Caiqinghua/archive/2010/08/03/1790900.html 

    5.《charger代码分析(Android4.2)》

          - http://blog.csdn.net/u010223349/article/details/8822747

    6.《android 电池(二):android关机充电流程、充电画面显示》

          - http://blog.csdn.net/xubin341719/article/details/8498580

    7.《recovery汉化实现》 

          - http://blog.csdn.net/haomcu/article/details/8189760

    8.《linux下gimp将图片另存为.c格式文本文件-之后加工存储 》 

          - http://blog.chinaunix.net/uid-20564848-id-73227.html

    9.《Android系统Recovery工作原理之使用update.zip升级过程分析》 

          - http://blog.csdn.net/mu0206mu/article/category/1059752

    10.《Cocos2d-x初入学堂(6)-->Bitmap Font generator位图字体工具》 

          - http://blog.csdn.net/aa4790139/article/details/8113197

    11.《android 关机闹钟》 

          - http://blog.csdn.net/g_salamander/article/details/8487328

    12.《Android recovery模式》 

          - http://www.2cto.com/kf/201206/137579.html

    13.《android recovery模式及ROM制作》

          - http://www.cnblogs.com/xl19862005/archive/2012/03/23/2414109.html

  • 相关阅读:
    1. while循环(当循环) 2. do{}while()循环 3. switch cose(多选一) 例子:当选循环下求百鸡百钱 用 switch cose人机剪刀石头布
    JS。 问题类型:穷举,迭代。两个关键词:break和continue
    for循环计算游戏通关分数
    36抽8 模拟抽奖
    冒泡排序
    折纸---珠穆朗玛问题----简单for 循环
    水仙花数------"水仙花数 "是指一个三位数,其各位数字立方和等于该数本身。(for循环的嵌套)
    九九乘法表---for循环的嵌套
    百鸡百钱===百马百担====for循环嵌套
    控制台输入年龄,根据年龄输出不同的提示 ------if……else if ……else 语句
  • 原文地址:https://www.cnblogs.com/pangblog/p/3265210.html
Copyright © 2011-2022 走看看