mtk关机充电动画旋转90/270度后坐标计算

2023-11-10 11:30

本文主要是介绍mtk关机充电动画旋转90/270度后坐标计算,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

mtk6580 android6.0 720*1280分辨率,需要旋转90度(1280*720)作横屏设备使用,但是logo文件夹没有对应旋转90度的"hd720nl"文件夹动画资源支持,只有“hd720”文件夹。查看到有相似分辨率1280*800的动画资源“wxganl/”文件夹,通过win自带画图工具重新调整一下大小变成1280*720的动画资源"hd720nl"使用。

//新建hd720nl文件夹,复制wxganl文件夹内容到hd720nl文件夹,批量替换wxganl前缀名的文件为hd720nl
rename 's/wxganl/hd720nl/' wxga*.bmp

 

1. project中的开机logo分辨率与旋转角度修改

vi device/eastaeon/xxx/ProjectConfig.mk
...
BOOT_LOGO = hd720nl
MTK_LCM_PHYSICAL_ROTATION = 90
...
vi kernel-3.18/arch/arm/configs/xxx_debug_defconfig
vi kernel-3.18/arch/arm/configs/xxx_defconfig...
CONFIG_MTK_LCM_PHYSICAL_ROTATION="90"
...
vi vendor/mediatek/proprietary/bootable/bootloader/lk/project/xxx.mk
...
MTK_LCM_PHYSICAL_ROTATION = 90
...
//作用于lk
vi device/eastaeon/xxx/eastaeon.mk
...
BOOT_LOGO = hd720nl
...

android frameworks旋转:

vi device/eastaeon/xxx/system.prop
...
ro.sf.hwrotation=90
...

 

2. 关机充电动画坐标计算

小技巧:打开win系统画图软件,

1).选择 查看->缩放->将图片放到到800%,

2).选择 查看->缩放->显示网格,这样就可以看到对应像素坐标了(因为logo使用bmp图片格式)

 

Android6.0的充电动画坐标修改头文件,下面是hd720分辨率旋转90\270度数据参考:

operation\alps\vendor\mediatek\proprietary\external\libshowlogo\cust_display.h
...
#if 0// hd720nl 1280*720 90度// battery capacity rectangle#define CAPACITY_LEFT                (558)#define CAPACITY_TOP                 (239)#define CAPACITY_RIGHT               (721) //CAPACITY_LEFT+width = 558 + 163 = 721#define CAPACITY_BOTTOM              (474) //蓝色低电量矩形图片中看到颜色高点+2// first number rectangle#define NUMBER_LEFT                  (570) //100%电量图片的"1"右移5像素#define NUMBER_TOP                   (79)  //看到top处像素点-7 = 86 - 7#define NUMBER_RIGHT                 (615) //NUMBER_LEFT + number_width = 570 + 45 = 615#define NUMBER_BOTTOM                (143) //NUMBER_TOP + number_high = 79 + 64 = 143// %  rectangle#define PERCENT_LEFT                 (660) //NUMBER_LEFT + 2*number_width#define PERCENT_TOP                  (79)  //=NUMBER_TOP#define PERCENT_RIGHT                (717) //PERCENT_LEFT + "%"图片width =  660 + 57#define PERCENT_BOTTOM               (143) //=NUMBER_BOTTOM// top animation part#define TOP_ANIMATION_LEFT           (558) //=CAPACITY_LEFT#define TOP_ANIMATION_TOP            (100) //定值,具体计算未知#define TOP_ANIMATION_RIGHT          (721) //=CAPACITY_RIGHT#define TOP_ANIMATION_BOTTOM         (129) //TOP_ANIMATION_TOP + 动画logo_high = 100 + 29 = 129// for old animation,下面4个已经不使用#define BAR_LEFT            (525)#define BAR_TOP             (250)#define BAR_RIGHT           (755)#define BAR_BOTTOM          (640)
#else// hd720nl 1280*720 270度// battery capacity rectangle#define CAPACITY_LEFT                (558)#define CAPACITY_TOP                 (245)#define CAPACITY_RIGHT               (721) //CAPACITY_LEFT+width = 558 + 163 = 721#define CAPACITY_BOTTOM              (480) //蓝色低电量矩形图片中看到颜色高点+2// first number rectangle#define NUMBER_LEFT                  (570) //100%电量图片的"1"右移5像素#define NUMBER_TOP                   (576)  //看到top处像素点-7 = 86 - 7#define NUMBER_RIGHT                 (615) //NUMBER_LEFT + number_width = 570 + 45 = 615#define NUMBER_BOTTOM                (640) //NUMBER_TOP + number_high = 79 + 64 = 143// %  rectangle#define PERCENT_LEFT                 (660) //NUMBER_LEFT + 2*number_width#define PERCENT_TOP                  (576)  //=NUMBER_TOP#define PERCENT_RIGHT                (717) //PERCENT_LEFT + “%”图片width =  660 + 57#define PERCENT_BOTTOM               (640) //=NUMBER_BOTTOM// top animation part#define TOP_ANIMATION_LEFT           (558) //=CAPACITY_LEFT#define TOP_ANIMATION_TOP            (619) //定值,具体计算未知#define TOP_ANIMATION_RIGHT          (721) //=CAPACITY_RIGHT#define TOP_ANIMATION_BOTTOM         (648) //TOP_ANIMATION_TOP + 动画logo_high = 100 + 29 = 129// for old animation#define BAR_LEFT            (525)#define BAR_TOP             (250)#define BAR_RIGHT           (755)#define BAR_BOTTOM          (640)
#endif

 

具体坐标计算如下,从对应分辨率的logo文件夹找出对应的battery logo图片放大再取对应像素点坐标:

 

3. 验证调试

1). android6.0 mt6580sdk提供的测试程序可以测试lk logo、kernel logo、充电动画

cd vendor/mediatek/proprietary/external/libshowlogo/libshowlogoTest//mm编译完,push到系统,例如测试充电动画
adb push xxx\operation\alps\out\target\product\xxx\system\bin\libshowlogotest sdcard///可执行程序测试
libshowlogotest charging fb new

 

2). 需要调试打印充电动画角度算法等

vi vendor/mediatek/proprietary/external/libshowlogo/show_logo_common.c

然后更新libshowlogo.so到系统(发现push几次so库后,测试程序运行有异常测试程序执行感觉卡卡的,重新烧录系统即可)

/mm编译完,pash到系统
adb push operation\alps\out\target\product\xxx\system\lib\libshowlogo.so /system/lib/chmod 644 /system/lib/libshowlogo.sosync

 

4. 参考资料

Android9.0 MTK 平板横屏方案修改(强制app横屏 + 开机logo/动画+关机充电横屏 + RecoveryUI 横屏)

[FAQ12646]适配开机lk阶段任意尺寸充电图标(比lcm size 小的图片)

[FAQ05711]LCM180度翻转方案

 

 

这篇关于mtk关机充电动画旋转90/270度后坐标计算的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/382385

相关文章

Python实现精确小数计算的完全指南

《Python实现精确小数计算的完全指南》在金融计算、科学实验和工程领域,浮点数精度问题一直是开发者面临的重大挑战,本文将深入解析Python精确小数计算技术体系,感兴趣的小伙伴可以了解一下... 目录引言:小数精度问题的核心挑战一、浮点数精度问题分析1.1 浮点数精度陷阱1.2 浮点数误差来源二、基础解决

Python文本相似度计算的方法大全

《Python文本相似度计算的方法大全》文本相似度是指两个文本在内容、结构或语义上的相近程度,通常用0到1之间的数值表示,0表示完全不同,1表示完全相同,本文将深入解析多种文本相似度计算方法,帮助您选... 目录前言什么是文本相似度?1. Levenshtein 距离(编辑距离)核心公式实现示例2. Jac

Python中经纬度距离计算的实现方式

《Python中经纬度距离计算的实现方式》文章介绍Python中计算经纬度距离的方法及中国加密坐标系转换工具,主要方法包括geopy(Vincenty/Karney)、Haversine、pyproj... 目录一、基本方法1. 使用geopy库(推荐)2. 手动实现 Haversine 公式3. 使用py

基于 HTML5 Canvas 实现图片旋转与下载功能(完整代码展示)

《基于HTML5Canvas实现图片旋转与下载功能(完整代码展示)》本文将深入剖析一段基于HTML5Canvas的代码,该代码实现了图片的旋转(90度和180度)以及旋转后图片的下载... 目录一、引言二、html 结构分析三、css 样式分析四、JavaScript 功能实现一、引言在 Web 开发中,

Python并行处理实战之如何使用ProcessPoolExecutor加速计算

《Python并行处理实战之如何使用ProcessPoolExecutor加速计算》Python提供了多种并行处理的方式,其中concurrent.futures模块的ProcessPoolExecu... 目录简介完整代码示例代码解释1. 导入必要的模块2. 定义处理函数3. 主函数4. 生成数字列表5.

Kotlin Compose Button 实现长按监听并实现动画效果(完整代码)

《KotlinComposeButton实现长按监听并实现动画效果(完整代码)》想要实现长按按钮开始录音,松开发送的功能,因此为了实现这些功能就需要自己写一个Button来解决问题,下面小编给大... 目录Button 实现原理1. Surface 的作用(关键)2. InteractionSource3.

使用WPF实现窗口抖动动画效果

《使用WPF实现窗口抖动动画效果》在用户界面设计中,适当的动画反馈可以提升用户体验,尤其是在错误提示、操作失败等场景下,窗口抖动作为一种常见且直观的视觉反馈方式,常用于提醒用户注意当前状态,本文将详细... 目录前言实现思路概述核心代码实现1、 获取目标窗口2、初始化基础位置值3、创建抖动动画4、动画完成后

Java计算经纬度距离的示例代码

《Java计算经纬度距离的示例代码》在Java中计算两个经纬度之间的距离,可以使用多种方法(代码示例均返回米为单位),文中整理了常用的5种方法,感兴趣的小伙伴可以了解一下... 目录1. Haversine公式(中等精度,推荐通用场景)2. 球面余弦定理(简单但精度较低)3. Vincenty公式(高精度,

使用animation.css库快速实现CSS3旋转动画效果

《使用animation.css库快速实现CSS3旋转动画效果》随着Web技术的不断发展,动画效果已经成为了网页设计中不可或缺的一部分,本文将深入探讨animation.css的工作原理,如何使用以及... 目录1. css3动画技术简介2. animation.css库介绍2.1 animation.cs

windows和Linux使用命令行计算文件的MD5值

《windows和Linux使用命令行计算文件的MD5值》在Windows和Linux系统中,您可以使用命令行(终端或命令提示符)来计算文件的MD5值,文章介绍了在Windows和Linux/macO... 目录在Windows上:在linux或MACOS上:总结在Windows上:可以使用certuti