第一部分 绘画基础—文本、图形、图像、动画一、MMI 架构 1.WGUILayer 包装后的GUI,WGUI是图形系统中的模板子系统。高级控件 2.GUILayer 图形系统中的绘画子系统 可以做图形,各种几何图形;文本,文字或字符串;填充,将图形和图像整合到一起;控件。 3.GDILayer Graphic:这里面绘制的图形会用响应的硬件加速。 Image:绘制动画,用的是GDI方法 Font:字体管理 LCD&Layers:处理层二、排版常量:常量可能会有一些宏与之作用相同,如MMI_MENUITEM_HEIGHT 与MMI_menuitem_height 都表示菜单项的高度,但建议使用MMI_menuitem_height,因为MMI_MENUITEM_HEIGHT 是菜单项高度的系统初始值,而这个高度在运行时是有可能变化的,MMI_menuitem_height 会依情况自行变化,所以在使用排版常量时建议使用上面列出的这些值。三、常用的颜色表示方法: GUI: {255,103,102,100}---255,103,102(RGB的值),100--(透明度) GDI: {255,103,102,100}---255(透明度),103,102,100-- RGB的值四、文本 1.字体用法示例: stFontAttribute f={0}; f.size=LARGE_FONT; gui_set_font(&f); 2.带边框的文字用法示例: gui_set_text_border_color(UI_COLOR_GREEN); gui_print_bordered_text(L"Hello World"); 3.精确排版用法示例: S32 x,y,w,h; gui_measure_string(L"Hello World",&w,&h); x=(UI_device_width-w)/2; y=(UI_device_height-h)/4; gui_move_text_cursor(x,y); 五、图形(一)点示例: gui_putpixel(UI_device_width/2,UI_device_height/2,UI_COLOR_BLACK); (二)线示例: gui_line(30,100,150,140,UI_COLOR_BLACK); (三)框示例: gui_draw_rectangle(x-4,y-4,x+w+4,y+h+4,UI_COLOR_RED); (四)填充框示例: gui_fill_rectangle(x,y,x+w,y+h,UI_COLOR_GREY); (五)带框填充矩形示例: gdi_draw_frame_rect(x-4,y-4,x+w+4,y+h+4,gdi_act_color_from_rgb(255,204,255,102),GDI_COLOR_RED,3); 注意:(1)gdi_act_color_from_rgb(255,204,255,102)---填充色(2)GDI_COLOR_RED--边框的颜色(3) 3--边框的宽度六、图像(一)图像的存储方式 1.资源:(1)资源ID (2)资源Buffer,即以GetImage(IMAGE_ID)方式由资源ID转换过来的 2.文件:从文件系统中动态获取图像 3.Buffer 与资源存储方式不同,资源存储的图像内容中加入了我们自定义的格式数据,而这所说的buffer只有纯粹图像数据(如网络在线下载的临行图像数据等)。(二)静态图像示例: #include "MainMenuDef.h" gdi_image_draw_id(30,110,MAIN_MENU_MU); (二)静态图像示例: #include "MainMenuDef.h" gdi_image_draw_id(30, 110, MAIN_MENU_MATRIX_ORGANIZER_ICON); (三)缩放示例: gdi_image_draw_resized_id(30,100,20,30,MAIN_MENU_MATRIX_ORGANIZER_ICON); (四)动画效果示例: gdi_handle my_anim; void mmi_myapp_entry(void) { gdi_anim_draw_id(50,100,MAIN_MENU_MATRIX_ORGANIZER_ANIMATION,&my_anim); } 停止动画:示例: void stop_my_anim(void) { gdi_anim_stop(my_anim); } void mmi_myapp_entry(void) { gdi_anim_draw_id(50,100,MAIN_MENU_MATRIX_ORGANIZER_ANIMATION,&my_anim); SetKeyHandler(stop_my_anim,KEY_LSK,KEY_EVENT_UP); }
MTK培训班
MTK培训班
dsp6000培训班
dsp6000培训班
FPGA培训班
symbian 培训班
cadence pcb培训班
单片机培训班
android培训班
brew手机培训