关机充电动画客制化以及错位调整
[解]
一,客制化
1,关机充电标志图片都在阿尔卑斯山/供应商/联/专有/启动/引导程序/ LK的/ dev /标识目录下,在这里可以看到多个包含不同尺寸图片的子目录,具体使用哪个子目录下的图片由$ {} BOOT_LOGO决定。
注意:如果客户想要使用客制化的背景图片,可以直接替换子目录下对应编号的图片
2,需要根据实际情况修改。例如:
LCM_WIDTH = 720
LCM_HEIGHT = 1280
BOOT_LOGO = hd720
3,绘制代码流程:
(1)关机充电服务kpoc_charger里面创建了一个draw_thread_routine()线程用于绘制Logo。
(2)draw_thread_routine()线程通过draw_with_interval() - > bootlogo_show_charging()最终调用libshowlogo里面的show_battery_capacity()函数每隔1秒绘制一次图片(间隔时间可客制化)。
4,show_battery_capacity中提供四种不同的动画绘制方案,客户可以根据自己的需要选择动画方案:
(1)旧版动画效果
四方格增长式,动画效果如下图所示。
对应填充函数fill_animation_battery_old()。
注意:如果要使能这种动画方案,需注释掉ANIMATION_NEW
(2)新版本动画效果
填充区的高度和电量对应固定,顶部曲线浮动型,动画效果如下;
对应填充函数fill_animation_battery_new()。
(3)快充动画效果
循环替换增长式,动画效果如下;
对应函数fill_animation_battery_fast_charging()。
注意:如若要使能快充动画效果,需定义快充相关宏,且保证快充TA连接;
快充相关宏:MTK_PUMP_EXPRESS_PLUS_SUPPORT / MTK_PUMP_EXPRESS_PLUS_20_SUPPORT / MTK_PUMP_EXPRESS_PLUS_30_SUPPORT
需要修改makefile文件:/
device/
mediatek/
$ { PROJECT_NAME } /ProjectConfig.mk /vendor/mediatek/proprietary/external/libshowlogo/Android.mk /vendor/mediatek/proprietary/bootable/bootloader/lk/project/project_name.mk
/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo/rules.mk
(4)无线充电动画效果
需使能无线充电相关宏;
二,充电动画图片错位
出现图片错位的情况,多数都是因为图形绘制点和屏幕尺寸不匹配导致的。
客户可以根据自己的实际情况,调整cust_display.h中位置参数:
AndroidM后:/vendor/mediatek/proprietary/external/libshowlogo/cust_display.h
AndroidM前:/vendor/mediatek/proprietary/bootable/bootloader/lk/target/${PROJECT}/include/target/cust_display.h
1,使用旧版本动画方案的调整如下设置,
#define BAR_LEFT(215)
#define BAR_TOP(156)
#define BAR_RIGHT(265)
#define BAR_BOTTOM(278)
可以用windows的画图软件打开第1点里提到的图片,根据电池边框的像素来调整。
这里坐标的参考原点是左上角,背景图片的左上角是(0,0),这四个值都是相对于左上角的坐标来确定的,因此RIGHT> LEFT,BOTTOM> TOP
小技巧:1)打开画图软件,选择查看 - >缩放 - >自定义,将图片放到800%
2)选择查看 - >缩放 - >显示网格
这样就可以看到一个一个的像素
2,使用新版本动画方案调整如下设置:
#define CAPACITY_LEFT(278)
#define CAPACITY_TOP(556)
#define CAPACITY_RIGHT(441)
#define CAPACITY_BOTTOM(817)