要实现只是显示图片文件,请参考以下修改方法:
1. 在filemgrmain.c中添加如下全局变量和函数:
mmi_id g_cui_imgview;
U32 G_cui_id;
U8 fmgr_imgvwr_buffer[SRV_FMGR_FOLDER_FILELIST_MEM_SIZE];
SRV_FMGR_FILELIST_HANDLE fhlr;
mmi_ret mmi_imgvwr_filelist_refresh_proc(mmi_event_struct *param)
{
S16 start_index = 0;
srv_fmgr_filelist_refresh_result_event_struct *evt = (srv_fmgr_filelist_refresh_result_event_struct*) param;
switch(param->evt_id)
{
case EVT_ID_SRV_FMGR_FILELIST_REFRESH_RESULT:
{
S32 file_count;
if (evt->result >= 0)
{
file_count = srv_fmgr_filelist_count(evt->handle);
if (file_count > 0)
{
cui_imgview_set_mode_filelist(g_cui_imgview, evt->handle,start_index);
cui_imgview_run(g_cui_imgview);
}
}
}
break;
}
return MMI_RET_OK;
}
2.用static void fmgr_main_run_imgviewcui(mmi_fmgr_instance_struct *instance)
{
/*----------------------------------------------------------------*/
/* Local Variables */
/*----------------------------------------------------------------*/
mmi_id cui_id = GRP_ID_INVALID;
FMGR_FILTER filter;
FMGR_FILTER_INIT(&filter);
FMGR_FILTER_SET_IMAGE(&filter);
FMGR_FILTER_CLEAR(&filter, FMGR_TYPE_ANM);
FMGR_FILTER_CLEAR(&filter, FMGR_TYPE_EMS);
/*----------------------------------------------------------------*/
/* Code Body */
/*----------------------------------------------------------------*/
cui_id = cui_imgview_create(mmi_fmgri_instance_get_screen_id(instance->id));
if (cui_id != GRP_ID_INVALID)
{
fmgr_main_p->imageviewer_cui_id = cui_id;
g_cui_imgview = cui_id;
srv_fmgr_folder_filelist_create((const WCHAR *)instance->file_path, &filter, srv_fmgr_sort_get(), fmgr_imgvwr_buffer,
SRV_FMGR_FOLDER_FILELIST_MEM_SIZE, &fhlr);
srv_fmgr_filelist_refresh(fhlr, NULL, 0, 0, mmi_imgvwr_filelist_refresh_proc, NULL);
}
}
替换filemgrmain.c.c中原来的同名函数。
另外,在某些版本中cui_imgview_set_mode_filelist的定义有错,
#define cui_imgview_set_mode_filelist(image_viewer_id, filelist, start_index) \
do{ \
cui_imgview_src_data src_data; \
src_data.file_list.h_list = filelist; \
src_data.file_list.cur_index = start_index; \
cui_imgview_init_source(cui_id, IMGVIEW_SRC_FILELIST, &src_data); \
}while(0);
请将cui_imgview_init_source(cui_id, IMGVIEW_SRC_FILELIST, &src_data);
中的cui_id改为
cui_imgview_init_source(image_viewer_id, IMGVIEW_SRC_FILELIST, &src_data);