找回密码
 注册
搜索
查看: 1236|回复: 7

[讨论] 如何在二级菜单里把列表菜单变成宫格显示?

[复制链接]
发表于 2010-7-22 20:17:30 | 显示全部楼层 |阅读模式
如何在二级菜单里把列表菜单变成宫格显示?
比如说,在工具箱里,原来是列表形式显示的菜单,现在要改成宫格显示。这该如何实现呢?
发表于 2010-7-25 12:55:16 | 显示全部楼层
或则直接调用主菜单的显示函数
点评回复

使用道具 举报

发表于 2010-7-24 16:33:29 | 显示全部楼层
ADD_APPLICATION_MENUITEM函数里可以设置属性
#define LIST_MENU           DISP_LIST
#define MATRIX_MENU         DISP_MATRIX
#define CIRCULAR_3D_MENU    DISP_CIRCULAR_3D
#define PAGE_MENU           DISP_PAGE
#define ANI_BG_LIST_MENU    DISP_ANI_BG_LIST
#define MATRIX_MENU_EMS     DISP_MATRIX_EMS
#define ROTATE_MENU         DISP_ROTATE
#define LIST_MATRIX_MENU    DISP_LIST_MATRIX
#define MOTION_MENU         DISP_MOTION
#define MATRIX_PAGE_MENU    DISP_MATRIX_PAGE
点评回复

使用道具 举报

 楼主| 发表于 2010-7-29 18:38:03 | 显示全部楼层
改成DISP_MATRIX,图片和字串都显示不出来
点评回复

使用道具 举报

 楼主| 发表于 2010-8-9 19:34:08 | 显示全部楼层
是用的category14,不知道为什么图片资源却加载不了,编译完后,在mte_img_resource.h文件里找不到所加载图片的ID。
点评回复

使用道具 举报

发表于 2010-8-5 01:28:06 | 显示全部楼层
以下是引用xmh800813在2010-7-25 12:55:16的发言:
或则直接调用主菜单的显示函数


这种方法不错
点评回复

使用道具 举报

发表于 2010-8-11 10:34:05 | 显示全部楼层
wgui_fixed_matrix_create_menu(
                number_of_items,
                -1,
                0,
                0,
                NULL);

         wgui_fixed_matrix_begin_add_one_item();
         for (i = 0; i < number_of_items; i++)
        {
                 list_of_items= title;

                    wgui_fixed_matrix_add_one_item(
                        i,
                        (U8*)(list_of_items),
                        get_image(list_of_icons));
               
         }

         MMI_fixed_matrix_menu.flags |= UI_MATRIX_MENU_LOOP;
         MMI_current_menu_type = MATRIX_MENU;

         gui_set_fixed_matrix_menu_theme(&MMI_fixed_matrix_menu, current_UI_theme->fixed_matrix_menu_theme);
        fixed_icontext_menuitem_apply_theme(current_UI_theme->fixed_icontext_menuitem_theme);
        register_fixed_matrix_highlight_handler(standard_animated_matrix_highlight_handler_type2);

        #ifdef __MAINMENU_DISPLAY_TEXT__
#if !defined(__MMI_MAINLCD_320X480__)&&!defined(__MMI_MATRIX_MAIN_MENU_NO_TITLEBAR__)
            wgui_fixed_matrix_move_menu(0, (MMI_title_y + MMI_title_height));
            wgui_fixed_matrix_resize_menu(MMI_content_width, MMI_content_height);
#endif
#else
#if !defined(__MMI_MAINLCD_320X480__)
            wgui_fixed_matrix_move_menu(0, (MMI_title_y + MMI_title_height));
            wgui_fixed_matrix_resize_menu(MMI_content_width, MMI_content_height);
#endif

#endif
          gui_measure_image(get_image(list_of_icons[0]), &ixsize, &iysize);
#ifdef __MMI_MAINLCD_320X480__
            iysize += MAIN_MENU_TEXT_AREA_HEIGHT;
#endif

        #ifdef __MMI_MAINLCD_320X240__
            configure_fixed_matrix(ixsize, iysize, 4, 0);
        #else /* __MMI_MAINLCD_320X240__ */
            configure_fixed_matrix(ixsize, iysize, 3, 0);
        #endif /* __MMI_MAINLCD_320X240__ */            
               
         wgui_fixed_matrix_end_add_one_item();
            shortcut_width = set_menu_item_count(number_of_items) + 7;
            resize_menu_shortcut_handler(shortcut_width, MMI_title_height);
            move_menu_shortcut_handler(UI_device_width - MMI_menu_shortcut_box.width, MMI_title_y);

#ifdef __MMI_MAINLCD_320X480__
            set_fixed_icontext_positions(1, iysize - MAIN_MENU_TEXT_AREA_HEIGHT + MAIN_MENU_TEXT_GAP, 0, 0);
            MMI_fixed_icontext_menuitem.flags &= ~UI_MENUITEM_CENTER_ICON_Y;
            MMI_fixed_icontext_menuitem.flags |= UI_MENUITEM_CENTER_TEXT_X;
#else
         set_fixed_icontext_positions(0, 0, 0, 0);

          wgui_title_disable_menu_shortcut_display(MMI_FALSE);
        #ifdef __MMI_WALLPAPER_ON_BOTTOM__
            dm_get_scr_bg_flag(&mm_bg_flags);
            dm_set_scr_bg_flag(mm_bg_flags | DM_SCR_BG_FORCE_SHOW);
        #endif

            h_flag = set_matrix_menu_category_history(MMI_CATEGORY14_MATRIX_ID, history_buffer);
                    #ifdef __MMI_WGUI_MINI_TAB_BAR__
                if (wgui_if_mini_tab_bar_in_parent() == MMI_TRUE)
                {
                    S32 idx = (S32) wgui_mini_tab_bar_get_index();

                    fixed_matrix_goto_item_no_redraw(idx);
                }
                else
        #endif /* __MMI_WGUI_MINI_TAB_BAR__ */      
                fixed_matrix_goto_item_no_redraw(0);
            
        MMI_title_string = (UI_string_type) (title);

         MMI_fixed_icontext_menuitem.flags |= UI_MENUITEM_FOCUSSED_ANIMATE;
            SetKeyHandler(fixed_matrix_goto_previous_item, KEY_VOL_UP, KEY_EVENT_DOWN);
            SetKeyHandler(fixed_matrix_goto_next_item, KEY_VOL_DOWN, KEY_EVENT_DOWN);
            cat_id = MMI_CATEGORY52_MATRIX_ID;

        #ifdef __MMI_MATRIX_MAIN_MENU_OPTIMIZE__
            /* allocate matrix highlight buffer from SCR ASM */      
         //   MMI_fixed_matrix_menu.buffer.buf_ptr = (U8*)applib_mem_screen_alloc(MMI_MAIN_MENU_MATRIX_HIGHLIGHTED_BUF_SIZE);
          //  MMI_ASSERT(MMI_fixed_matrix_menu.buffer.buf_ptr != NULL);
        #endif /* __MMI_MATRIX_MAIN_MENU_OPTIMIZE__ */
#endif

           break;

   default:
#endif

           cat_id = MMI_CATEGORY52_ID;
点评回复

使用道具 举报

发表于 2010-8-11 10:33:43 | 显示全部楼层
我把 void ShowCategory353Screen 修改了一下:看还有没有好的方法,或者直接改配置就行
switch(flags)
{
   case MATRIX_MENU://  ********  add 20100603
           #ifdef __MMI_UI_LIST_HIGHLIGHT_EFFECTS__
                    gui_block_list_effect();
        #endif        
        UI_disable_alignment_timers();
      wgui_title_set_menu_shortcut_number(-1);
      change_left_softkey(left_softkey, left_softkey_icon);
      change_right_softkey(right_softkey, right_softkey_icon);
      SetupCategoryKeyHandlers();
        MMI_current_menu_type = flags & 0x0f;
        MMI_title_string = (UI_string_type) (title);
        MMI_title_icon = (PU8) get_image(title_icon);

        matrix_title_theme.active_text_color = *current_MMI_theme->main_menu_title_color;
       matrix_title_theme.text_border_color = *current_MMI_theme->main_menu_title_border_color;

         if (g_wgui_use_thick)
            {
                matrix_title_theme.shortcut_text_color = current_thick_title_theme->shortcut_text_color;
                matrix_title_theme.text_font = current_thick_title_theme->text_font;
                matrix_title_theme.active_filler = current_thick_title_theme->active_filler;
            }
            else
            {
                matrix_title_theme.shortcut_text_color = current_window_title_theme->shortcut_text_color;
                matrix_title_theme.text_font = current_window_title_theme->text_font;
                matrix_title_theme.active_filler = current_window_title_theme->active_filler;
            }
    gui_title_set_theme(&g_wgui_title_bar, &matrix_title_theme);
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2025-1-5 10:19 , Processed in 0.047183 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表