如何修改Recovery的字符串资源(修改显示字体颜色和大小)
来源:互联网 发布:linux jdk下载 64位 编辑:程序博客网 时间:2024/06/10 08:14
前言:在上一篇文章《如何修改Recovery的字符串资源》中,主要是介绍了如何修改字符串资源的内容。在实际中,我们既可能需要修改字符串在UI中的字体颜色和字体大小。那么如何对Recovery进行修改呢?
经过一段时间的摸索和研究,总结出目前已知的方式有两种:1,直接使用需要显示效果的图片资源,如阿里YunOS的方法。2. 在代码上进行颜色修改,然后在上一篇提到的方法中,通过生成资源的APK文件中修改字体的大小。下面分别介绍下两种方法:
方法一:直接替换字体的图片资源。参考YunOS的Recovery。
首先在在res/images目录下准备如下:
installing_text.png打开后的内容是:
erasing_text.png打开的内容是:
然后在代码上修改文件 screen_ui.cpp,对应的ScreenRecoveryUI::Init()函数中,将原来的
LoadLocalizedBitmap("installing_text", &backgroundText[INSTALLING_UPDATE]);
LoadLocalizedBitmap("erasing_text", &backgroundText[ERASING]);
改为:
LoadBitmap("installing_text", &backgroundText[INSTALLING_UPDATE]);
LoadBitmap("erasing_text", &backgroundText[ERASING]);
这样就完成了字体的颜色和大小的替换。
方法二:通过修改代码来改变颜色,然后通过APK修改字体大小。
首先,我们可以在screen_ui.cpp的ScreenRecoveryUI::draw_background_locked中,修改代码段
gr_color(255, 255, 255, 255); 这里就是字体颜色的RBGA值。
然后,通过修改recovery_l10n这个apk的代码,在onCreate()的函数内,有一个变量mText是用来显示字符串的,而代码
Bitmap b =mText.getDrawingCache();
savedBitmaps.put(thisLocale, b.copy(Bitmap.Config.ARGB_8888,false));
说明保存字符串的图片内的字符串是通过这个mText来建立图片的缓存信息的,所以只要将mText的字体变大mText.setTextSize()即可实现字体的变大。然后再通过上一篇文章的步骤,重新编译。
总结:两种方法都可以修改Recovery的升级等提示信息的字体的颜色和大小。方法一具有图片特有的优点,实现效果好,界面美观。缺点就是只能显示一种语言,无法根据语言自动切换文字。方法二的优点也就是方法一的缺点了。
另外附一篇别人的文章,http://blog.csdn.net/kangear/article/details/10011849 标题是“Android的Recovery中font_10x18.h字库文件制作”,我原来以为是通过修改font.h来实现字体的大小的修改,后来做了很多次的实验,硬是没有成功,然后我就想会不会是对Recovery的Menu有效,后来发现也无效。。。
2016-10-27 更新:
经网友提点,原来在build/core/Makefile里还有对字体有影响的语句:
recovery_font := $(call include-path-for, recovery)/fonts/36x64.png
这里定义了一个recovery_font的变量,而这个变量的用处在另一处说明了是:
$(hide) cp -f $(recovery_font) $(TARGET_RECOVERY_ROOT_OUT)/res/images/font.png
也就是将原来的36x64.png文件拷贝到res/imges/font.png.在回顾之前的源码,在minui/graphics.cz的函数gr_init_font()中一开始就有个读取font文件资源:int res = res_create_surface("font", (void**)&(gr_font->texture)); 这句话就是读取res/images/font.png,然后进行长宽的设定,只有读不到这个资源的时候才调用另一个判断使用font.h文件。
所以之前一直改font.h无法有效的原因已经找到,要不去掉Makefile的语句,要不直接改Makefile的指定字体文件即可实现Menu的字体修改。
0 0
- 如何修改Recovery的字符串资源(修改显示字体颜色和大小)
- 如何修改Recovery的字符串资源
- [FAQ08110][Recovery][UI/Key]如何修改recovery mode下字体的大小
- ios修改textField的placeholder的字体颜色和大小
- putty修改字体颜色和大小
- android spinner 修改字体颜色和大小
- 修改textFieldplaceholder字体颜色和大小
- 修改textFieldplaceholder字体颜色和大小
- 关于如何修改PreferenceFragment中默认的字体颜色和大小
- ActionBar 修改title 的字体 大小和颜色
- textfield修改placeholder的字体颜色和大小
- 修改导航条字体的颜色和大小
- UITextField placeholder 字体颜色, 大小的修改
- 修改UIWebView中字体的大小,颜色
- 修改字符串字体颜色
- Bootstrap navbar 背景颜色、背景图和字体颜色修改,颜色修改不显示的问题
- 如何修改wordpress文章字体格式、字号大小、字体颜色
- tabbaritem字体颜色,大小修改
- 深入理解乐观锁与悲观锁
- 2 javascript中变量、作用域和内存问题
- 如何在资源管理器中恢复“最近文件夹”
- leetcode 299. Bulls and Cows
- 【Java多线程与并发库】6.ThreadLocal类及应用技巧
- 如何修改Recovery的字符串资源(修改显示字体颜色和大小)
- export aborted becauser fatal lint errors were found . these are listed in the lint view,Either fix
- datagrid 行点击事件
- Oracle触发器备份表数据
- 第八周 OJ练习-2
- 题目1074:对称平方数【数位拆解】
- java注解详解(注解项目实战)
- 后台调用前台方法(能使用jquery的函数)
- JAVA实现随机无重复数字功能