//android提供了一个库minui用于简单的UI输出,源码在bootable/recovery/minui中,

//gr_init()和gr_font_size()为minui库提供方法,gr_init()为UI输出作准备,gr_font_size()获得字体大小

gr_init();

//res_create_surface()为minui库中提供,用于将一张图片生成一个surface

1、gr_init()  初始化图形设备,分配Pixelflinger库渲染的内存

2、gr_font_size()  将字体对应的surface长宽赋值给char_width和char_height

    1. int gr_init(void);             /* 初始化图形显示,主要是打开设备、分配内存、初始化一些参数 */
    2. void gr_exit(void);            /* 注销图形显示,关闭设备并释放内存 */
    3. int gr_fb_width(void);         /* 获取屏幕的宽度 */
    4. int gr_fb_height(void);        /* 获取屏幕的高度 */
    5. gr_pixel *gr_fb_data(void);    /* 获取显示数据缓存的地址 */
    6. void gr_flip(void);            /* 刷新显示内容 */
    7. void gr_fb_blank(bool blank);  /* 清屏 */
    8. void gr_color(unsigned char r, unsigned char g, unsigned char b, unsigned char a);  /* 设置字体颜色 */
    9. void gr_fill(int x, int y, int w, int h);  /* 填充矩形区域,参数分别代表起始坐标、矩形区域大小 */
    10. int gr_text(int x, int y, const char *s);  /* 显示字符串 */
    11. int gr_measure(const char *s);             /* 获取字符串在默认字库中占用的像素长度 */
    12. void gr_font_size(int *x, int *y);         /* 获取当前字库一个字符所占的长宽 */
    13. void gr_blit(gr_surface source, int sx, int sy, int w, int h, int dx, int dy);  /* 填充由source指定的图片 */
    14. unsigned int gr_get_width(gr_surface surface);   /* 获取图片宽度 */
    15. unsigned int gr_get_height(gr_surface surface);  /* 获取图片高度 */
    16. /* 根据图片创建显示资源数据,name为图片在mk文件指定的相对路径 */
    17. int res_create_surface(const char* name, gr_surface* pSurface);
    18. void res_free_surface(gr_surface surface);       /* 释放资源数据 */

主程序通过dlopen()加载一个.so的动态库文件, 然后动态库会自动运行 _init() 初始化函数, 初始化函数打印一个提示信息, 然后调用主程序的注册函数给结构体重新赋值, 然后调用结构体的函数指针, 打印该结构体的值. 这样就充分的达到了主程序和动态库的函数相互调用和指针的相互传递.

  1. void res_free_surface(gr_surface surface);       /* 释放资源数据 */

miniui的更多相关文章

  1. miniui中的相关问题

    miniui中的datagrid,若需要为其中表格设置值,则: 必须保证查出来的json中字段对应field,且json的格式必须为: {“data”:[{"id":"0 ...

  2. 扩展 jquery miniui 组件实现自动查询数据

    主题 之前写过一篇文章分享了公司basecode查找数据后台是怎么实现的(http://www.cnblogs.com/abcwt112/p/6085335.html).今天想分享一下公司前台是怎么扩 ...

  3. miniui前台无法显示数据

    坑爹,刚开始使用miniui重写对账单的功能,显示数据的时候明明已经获取到json数据了,但前台还是显示不出来,找了一上午的原因,终于找到是因为前台显示字段的field值要改成和json中(数据库字段 ...

  4. miniui无法传递input值

    miniui获取到的值死活传不到php去处理,input框里有值php接收到却一直为空,又是查资料.测试.搜索.提问,最后才在文档中发现尼玛miniui不用name的,其实是<input tex ...

  5. miniui后台无法接收到input传值

    出错原因:在miniui中,此处应写成<input textName="current_unit",在php中才可以使用$_POST['current_unit']获取到值, ...

  6. MINIUI版本破解

    miniui类似easyui是一个web ui,功能比不上人家还是收费,收费也就算了,代码还加密混淆,过期提示脚本越写越离谱,严重低估IT人员的智慧,对此表示强烈不满,故下载了几个版本花了一小时破解: ...

  7. MiniUI动态添加table表格

    本文将介绍一下,如何用Jquery MiniUi动态添加一行table表格 1.效果展示 ↓ 2.具体代码 <script type="text/javascript"> ...

  8. MiniUI中DataGrid数据的载入

    本文将介绍一下,在ASP.NET MVC环境下,如何用Jquery MiniUI中的Datagrid控件载入数据. 1.效果展示: 2.具体步骤: 1>  既然是在MVC里,那我们的界面自然选择 ...

  9. jQuery MiniUI开发系列之:数据验证

    在开发应用系统界面时,往往需要进行很多.复杂的数据验证,当填写的数据符合规定,才能提交保存. jQuery MiniUI提供了比较完美的表单数据验证和错误显示的方式. 常见的表单控件,都有一个验证事件 ...

  10. jQuery MiniUI开发系列之:Ajax处理超时、服务端错误

    MiniUI所有组件的ajax交互,均使用标准.成熟的jQuery.ajax. 依赖于jquery ajax组件的完善性,我们可以拦截住每一次ajax请求处理. 比如,拦截ajax返回数据前,判断返回 ...

随机推荐

  1. 国内固定电话正则验证:'tel': [/0\d{2,3}-\d{7,8}(|([-\u8f6c]{1}\d{1,5}))$/, "请填写有效的电话号码"],

    // 验证字段 $('#info_form').validator({ rules : { checkMobile : function(ele) { return checkMobile(ele); ...

  2. PL/SQL Developer安装详解(32位客户端免安装版)

    PL/SQL Developer是一个集成开发环境,专门开发面向Oracle数据库的应用.PL/SQL也是一种程序语言,叫做过程化SQL语言(Procedural Language/SQL).PL/S ...

  3. apache 集成ssl 配置 https 证书

    http://zhangge.net/4890.html 后面遇到 问题点一:  it`s work 是因为没配置ssl访问站点路径 /alidata/server/httpd/conf/extra/ ...

  4. Html5shiv

    说明编辑 越来越多的站点开始使用 HTML5 标签.但情况是还有很多人在使用IE6,IE7,IE8.为了让所有网站浏览者都能正常的访问网站, 2解决方案编辑 有下面两个: 为网站创建多套模板,通过程序 ...

  5. SQL语句 在一个表中插入新字段

    SQL语句 在一个表中插入新字段: alter table 表名 add 字段名 字段类型 例: alter table OpenCourses add Audio varchar(50)alter ...

  6. 夺命雷公狗----Git---5---分支

    git分支的概念相当于是添加一个属于自己的分支,别人是看不到的,等你写完自己的程序到时候在合并到团队的分支上即可.... 我们可以查看自己git里面有什么分支,如下所示: git branch 在这里 ...

  7. Best Part

  8. phpcms V9 内容模型管理

    [1]理解模型 模型,系统知识的抽象表示.既然抽象了,那就得脑补一下.大家都是面向对象设计的专业人员,类就很抽象的,对比类的定义想象一下模型的概念. 举个例子,一般新闻类的信息,都具有标题.内容.作者 ...

  9. Makefile编译库

    funs.h: #ifndef __FUNS_H__ #define __FUNS_H__ void fun1(); #endif funs.c #include "funs.h" ...

  10. python_函数

    一.map 遍历序列,对序列中每个元素进行操作,最终获取新的序列 li = [11,22,33,44] new_list = map(lambda a: a + 100,li) print(new_l ...