关机充电动画客制化以及错位调整
[Solution]
一、客制化
1,关机充电logo图片都在alps/vendor/mediatek/proprietary/bootable/bootloader/lk/dev/logo目录下,在这里可以看到多个包含不同size图片的子目录,具体使用哪个子目录下的图片由${BOOT_LOGO}决定。
note:如果客户想要使用客制化的背景图片,可以直接替换子目录下对应编号的图片
2,需要根据实际情况修改alps/device/mediatek/${PROJECT}/ProjectConfig.mk中配置,修改屏幕大小等,例如:
LCM_WIDTH = 720
LCM_HEIGHT = 1280
BOOT_LOGO = hd720
3,绘制代码流程:
(1)关机充电 service 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)old version动画效果
四方格增长式,动画效果如下图所示。
对应填充函数fill_animation_battery_old()。
note:如果要使能这种动画方案,需注释掉ANIMATION_NEW
(2)new version动画效果
填充区height和电量对应固定,顶部曲线浮动型,动画效果如下;
对应填充函数 fill_animation_battery_new()。
(3)快充动画效果
循环替换增长式,动画效果如下;
对应函数 fill_animation_battery_fast_charging()。
note:如若要使能快充动画效果,需define快充相关宏,且保证快充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)无线充电动画效果
需使能wireless charging 相关宏;
二、充电动画图片错位
出现图片错位的情况,多数都是因为图形绘制点和屏幕尺寸不匹配导致的.
客户可以根据自己的实际情况,调整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 ,使用old version动画方案的调整如下设置,
#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,使用new version动画方案调整如下设置:
#define CAPACITY_LEFT (278)
#define CAPACITY_TOP (556)
#define CAPACITY_RIGHT (441)
#define CAPACITY_BOTTOM (817)