芯方式

相册矩阵模式的缩略图显示不完整 ,需要修改后完整缩略图

0
阅读(749)

[DESCRIPTION]
相册矩阵模式的缩略图显示不完整,是把截取图片的一部分进行显示,当时这样设计的原因是为了使缩略图看起来比较
统一,缩略图的上下不会有黑边出现。
[SOLUTION]
修改方法如下,注意修改完成后需要把mediacache文件夹删掉后重新生成,不然查看图片时会拿mediacache的数据进行
显示,看不到效果。
1 在文件vadp_mediawall.h中添加如下函数声明:
extern void vapp_mediawall_img_cb(VfxU32* handle, VfxS32* layer_w, VfxS32* layer_h,
srv_mediacache_rect_struct *img_org, srv_mediacache_rect_struct *img_resized, void *user_data);
2 在文件vadp_mediawall.c中添加如下函数定义:
void vapp_mediawall_img_cb(VfxU32* handle, VfxS32* layer_w, VfxS32* layer_h, srv_mediacache_rect_struct
*img_org, srv_mediacache_rect_struct *img_resized, void *user_data)
{
VfxS32 cellWidth = 72;
VfxS32 cellHeight = 72;
gdi_util_fit_box(
GDI_UTIL_MODE_NO_RESIZE_OR_LONG_SIDE_FIT,
cellWidth,
cellHeight,
img_org->width,
img_org->height,
&img_resized->x,
&img_resized->y,
&img_resized->width,
&img_resized->height);
}
3 在函数vapp_mediawall_cat()中做如下修改:
srv_mediacache_add_cache(
g_vadp_mediawall_cntx.srv_mediacache_handle,
SRV_MEDIACACHE_CACHE_TYPE_L2,
(void*)((kal_uint32)g_vadp_mediawall_cntx.med_mem_buf_p + sqlite_buf_size),
g_vadp_mediawall_cntx.med_mem_buf_size - sqlite_buf_size);
//hsz start添加如下icfans代码
srv_mediacache_register_engine_clip_function(vapp_mediawall_img_cb, NULL);
//hsz end
VAPP_MEDIAWALL_START_LOGGING("MST");
srv_mediacache_start(g_vadp_mediawall_cntx.srv_mediacache_handle, init.highlight_idx);
VAPP_MEDIAWALL_STOP_LOGGING("MST");
4 在函数VappMediaWallCell::updateImage()中
把setContentPlacement(VFX_FRAME_CONTENT_PLACEMENT_TYPE_CENTER);
改为setContentPlacement(VFX_FRAME_CONTENT_PLACEMENT_TYPE_RESIZE);