对于MTK平台来说,菜单和屏幕特效曾经在很长的一段时间里,影响甚远。
但对于其设计过程和方法,由于各种各样的原因,很少有人提及。
这里介绍一种不同于前几天日志所载之方法的另一种方法,就是合并图层,其核心实现函数如下。
void my_gdi_layer_copy(gdi_layer_struct* dst_layer, int dst_x, int dst_y, int width, int height,
gdi_layer_struct* src_layer, int src_x, int src_y)
{
U16 *dst_buf, *src_buf;
int i;
if (dst_x < 0 || dst_y < 0 || dst_x + width > dst_layer->width || dst_y + height > dst_layer->height)
{
if (dst_x < 0)
{
width -= -dst_x;
src_x += -dst_x;
dst_x = 0;
}
if (dst_y < 0)
{
height -= -dst_y;
src_y += -dst_y;
dst_y = 0;
}
if (dst_x + width > dst_layer->width)
{
width = dst_layer->width - dst_x;
}
if (dst_y + height > dst_layer->height)
{
height = dst_layer->height - dst_y;
}
}
if (src_x < 0 || src_y < 0 || src_x + width > src_layer->width || src_y + height > src_layer->height)
{
if (src_x < 0)
{
width -= -src_x;
dst_x += -src_x;
src_x = 0;
}
if (src_y < 0)
{
height -= -src_y;
dst_y += -src_y;
src_y = 0;
}
if (src_x + width > src_layer->width)
{
width = src_layer->width - src_x;
}
if (src_y + height > src_layer->height)
{
height = src_layer->height - src_y;
}
}
if (width <= 0 || height <= 0)
return;
dst_buf = (U16 *)dst_layer->buf_ptr + dst_y * dst_layer->width + dst_x;
src_buf = (U16 *)src_layer->buf_ptr + src_y * src_layer->width + src_x;
for (i = 0; i < height; i ++)
{
memcpy(dst_buf, src_buf, width * 2);
dst_buf += dst_layer->width;
src_buf += src_layer->width;
}
}
有兴趣的朋友可以自己利用该函数研发各种各样的变化效果。
这个函数,加上我前一段时间提供的另一种方法,大致可以制作二十种左右的效果。
分享到:
相关推荐
论 MTK平台 屏幕切换 特效 本文是关于屏幕切换交流
介绍了MTK OTG 配置方法,很详细,按照配置来配肯定可以
MTK 层 深入浅出
MTK 中制作UI工具,这是mtk软件开发者想要的资料
MTK开机第一屏制作软件LogoBuilder_v1.4中文版 全中文版本,极度方便你高仿
在网上搜索到的mtk 3d特效,开源代码,感兴趣的可以一起学习借鉴下
mtk camera效果复制脚本,用以复制hal层效果文件,重新生成新camera效果
mtk平台传感器hal层关键代码,其中包括,计步器,加速度器,光线传感器等
MTK校准原理及方法 MTK校准原理及方法
MTK方案软件升级方法MTK方案软件升级方法MTK方案软件升级方法MTK方案软件升级方法MTK方案软件升级方法MTK方案软件升级方法MTK方案软件升级方法
MTK flash tool 烧录实用方法,希望对大家有帮助,
MTK编译modem方法11AMDW1137SP_MT6573V2_HSPA_MMI> Make MT6573V2_MODEM HSPA new
经典手机MTK layout (10层)
移动叔叔一键制作MTK智能机IMEI串号工具v1.2.zip
MTK平台下一在线调试方法,详细描述了MTK平台的所有模块调试方法
MTK10A版本上增加屏幕切换特效的详细说明
MTK平台GPS hardware层RTK驱动修改。外挂RTK模块,实现ntrip差分协议。可实现RTK定位。
制作自己的拨号字库,用于MTK平台!
浅谈MTK层的切换 69 一些有用的层函数 72 层核心理念 74 模版 80 MTK屏幕模版 82 MTK的控件和窗体绘制机制 及其事件响应机制 84 详解dm_redraw_category_screen() 90 MTK高亮机制 93 CustomList模板的 制作过程及...