关机充电百分比字体大小修改过程记录
2014-01-26 15:14
946 查看
从csdn上面搜了很多文章,字库怎么生成都搞不定,然后看到一篇文章,建议直接从网址1.git clone https://github.com/xiaolu/cwm_recovery_cn上面取下来字库用,这个网址需要用到github,这个之前没有用过,就让同事帮忙下载的。因为人家原来文章建议的是中文字库,我现在还是要继续用英文字库,只是把百分比显示改大一点,所以从cwm_recovery_cn\minui里面挑了稍微大点的字体fonten42_25x49.h使用,添加到bootable/recovery/minui/下面,然后修改graphics.c文件,添加包含的头文件fonten42_25x49.h,为了方便关机充电字体修改不影响其他地方使用原来的字体,其中将fonten42_25x49.h中的数据font改成fonten42_25x49.h,并在graphics.c文件添加两个函数,添加代码如下:
#include
"fonten42_25x49.h"
static
void gr_init_font_extern(void)
{
gr_font = calloc(sizeof(*gr_font), 1);
int res = res_create_surface("font", (void**)&(gr_font->texture));
if (res == 0) {
// The font image should be a 96x2 array of character images. The
// columns are the printable ASCII characters 0x20 - 0x7f. The
// top row is regular text; the bottom row is bold.
gr_font->cwidth = gr_font->texture->width / 96;
gr_font->cheight = gr_font->texture->height / 2;
} else {
printf("failed to read font: res=%d\n", res);
// fall back to the compiled-in font.
gr_font->texture = malloc(sizeof(*gr_font->texture));
gr_font->texture->width = font_extern.width;
gr_font->texture->height = font_extern.height;
gr_font->texture->stride = font_extern.width;
unsigned char* bits = malloc(font_extern.width * font_extern.height);
gr_font->texture->data = (void*) bits;
unsigned char data;
unsigned char* in = font_extern.rundata;
while((data = *in++)) {
memset(bits, (data & 0x80) ? 255 : 0, data & 0x7f);
bits += (data & 0x7f);
}
gr_font->cwidth = font_extern.cwidth;
gr_font->cheight = font_extern.cheight;
}
// interpret the grayscale as alpha
gr_font->texture->format = GGL_PIXEL_FORMAT_A_8;
}
int gr_init_extern(void)
{
gglInit(&gr_context);
GGLContext *gl = gr_context;
gr_init_font_extern();
gr_vt_fd = open("/dev/tty0", O_RDWR | O_SYNC);
if (gr_vt_fd < 0) {
// This is non-fatal; post-Cupcake kernels don't have tty0.
perror("can't open /dev/tty0");
} else if (ioctl(gr_vt_fd, KDSETMODE, (void*) KD_GRAPHICS)) {
// However, if we do open tty0, we expect the ioctl to work.
perror("failed KDSETMODE to KD_GRAPHICS on tty0");
gr_exit();
return -1;
}
gr_fb_fd = get_framebuffer(gr_framebuffer);
if (gr_fb_fd < 0) {
gr_exit();
return -1;
}
get_memory_surface(&gr_mem_surface);
fprintf(stderr, "framebuffer: fd %d (%d x %d)\n",
gr_fb_fd, gr_framebuffer[0].width, gr_framebuffer[0].height);
/* start with 0 as front (displayed) and 1 as back (drawing) */
gr_active_fb = 0;
if (!has_overlay)
set_active_framebuffer(0);
gl->colorBuffer(gl, &gr_mem_surface);
gl->activeTexture(gl, 0);
gl->enable(gl, GGL_BLEND);
gl->blendFunc(gl, GGL_SRC_ALPHA, GGL_ONE_MINUS_SRC_ALPHA);
gr_fb_blank(true);
gr_fb_blank(false);
if (!alloc_ion_mem(fi.line_length * vi.yres))
allocate_overlay(gr_fb_fd, gr_framebuffer);
return 0;
}
另外将system/core/charger/charger.c里面的函数gr_init()函数的调用替换成gr_init_extern()。
目前字体是比原来大了很多,但是字库仍然不是我想要的那个样子,后面还是需要继续研究字库的生成方式。
参考文章地址:
Android的Recovery快速汉化
/article/2693975.html
http://www.lai18.com/content/1930561.html
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
前面都用到了".fnt"文件,但是没讲述".fnt"是怎么产生的怎么用的...
今天就将这个非常有用的位图处理工具,来回答上面的问题...
1、下载地址:http://www.angelcode.com/products/bmfont/
#include
"fonten42_25x49.h"
static
void gr_init_font_extern(void)
{
gr_font = calloc(sizeof(*gr_font), 1);
int res = res_create_surface("font", (void**)&(gr_font->texture));
if (res == 0) {
// The font image should be a 96x2 array of character images. The
// columns are the printable ASCII characters 0x20 - 0x7f. The
// top row is regular text; the bottom row is bold.
gr_font->cwidth = gr_font->texture->width / 96;
gr_font->cheight = gr_font->texture->height / 2;
} else {
printf("failed to read font: res=%d\n", res);
// fall back to the compiled-in font.
gr_font->texture = malloc(sizeof(*gr_font->texture));
gr_font->texture->width = font_extern.width;
gr_font->texture->height = font_extern.height;
gr_font->texture->stride = font_extern.width;
unsigned char* bits = malloc(font_extern.width * font_extern.height);
gr_font->texture->data = (void*) bits;
unsigned char data;
unsigned char* in = font_extern.rundata;
while((data = *in++)) {
memset(bits, (data & 0x80) ? 255 : 0, data & 0x7f);
bits += (data & 0x7f);
}
gr_font->cwidth = font_extern.cwidth;
gr_font->cheight = font_extern.cheight;
}
// interpret the grayscale as alpha
gr_font->texture->format = GGL_PIXEL_FORMAT_A_8;
}
int gr_init_extern(void)
{
gglInit(&gr_context);
GGLContext *gl = gr_context;
gr_init_font_extern();
gr_vt_fd = open("/dev/tty0", O_RDWR | O_SYNC);
if (gr_vt_fd < 0) {
// This is non-fatal; post-Cupcake kernels don't have tty0.
perror("can't open /dev/tty0");
} else if (ioctl(gr_vt_fd, KDSETMODE, (void*) KD_GRAPHICS)) {
// However, if we do open tty0, we expect the ioctl to work.
perror("failed KDSETMODE to KD_GRAPHICS on tty0");
gr_exit();
return -1;
}
gr_fb_fd = get_framebuffer(gr_framebuffer);
if (gr_fb_fd < 0) {
gr_exit();
return -1;
}
get_memory_surface(&gr_mem_surface);
fprintf(stderr, "framebuffer: fd %d (%d x %d)\n",
gr_fb_fd, gr_framebuffer[0].width, gr_framebuffer[0].height);
/* start with 0 as front (displayed) and 1 as back (drawing) */
gr_active_fb = 0;
if (!has_overlay)
set_active_framebuffer(0);
gl->colorBuffer(gl, &gr_mem_surface);
gl->activeTexture(gl, 0);
gl->enable(gl, GGL_BLEND);
gl->blendFunc(gl, GGL_SRC_ALPHA, GGL_ONE_MINUS_SRC_ALPHA);
gr_fb_blank(true);
gr_fb_blank(false);
if (!alloc_ion_mem(fi.line_length * vi.yres))
allocate_overlay(gr_fb_fd, gr_framebuffer);
return 0;
}
另外将system/core/charger/charger.c里面的函数gr_init()函数的调用替换成gr_init_extern()。
目前字体是比原来大了很多,但是字库仍然不是我想要的那个样子,后面还是需要继续研究字库的生成方式。
参考文章地址:
Android的Recovery快速汉化
/article/2693975.html
Android的Recovery中font_10x10.h字库文件***
http://www.lai18.com/content/1930561.html1.《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
前面都用到了".fnt"文件,但是没讲述".fnt"是怎么产生的怎么用的...
今天就将这个非常有用的位图处理工具,来回答上面的问题...
1、下载地址:http://www.angelcode.com/products/bmfont/
相关文章推荐
- eclipse中文字体大小修改,让中英文字体协调
- snort数据包记录模式修改包的大小…
- java中修改字体大小,颜色
- 弹出NumberPicker窗口,修改字体大小
- vs2010发布了:能快速修改源码字体大小,其实vs2008也能。
- zend studio代码字体修改字体和大小.
- ios修改textField的placeholder的字体颜色、大小
- 何在Android系统上修改系统默认的字体大小
- 修改Spinner中字体的大小
- ActionBar 修改title 的字体 大小和颜色
- iOS 修改UIBarButtonItem title 字体大小
- visio 2010 修改 默认字体 字号大小 方法[整理]
- (笔记)VB中修改字体大小、日期加减,oracle数据库中查询条件为日期类型
- recovery mode下的字体大小修改
- word字体大小与公式编辑器字体对照表 如何批量修改word里的公式
- Android 修改关机充电动画
- WTL环境中CEdit或Cstatic控件中修改字体大小和颜色
- 修改webView字体大小
- gtk+中对字体大小及颜色的修改
- Android源码中关机充电UI的修改