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

相关文章

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

poj 1113 凸包+简单几何计算

题意: 给N个平面上的点,现在要在离点外L米处建城墙,使得城墙把所有点都包含进去且城墙的长度最短。 解析: 韬哥出的某次训练赛上A出的第一道计算几何,算是大水题吧。 用convexhull算法把凸包求出来,然后加加减减就A了。 计算见下图: 好久没玩画图了啊好开心。 代码: #include <iostream>#include <cstdio>#inclu

uva 1342 欧拉定理(计算几何模板)

题意: 给几个点,把这几个点用直线连起来,求这些直线把平面分成了几个。 解析: 欧拉定理: 顶点数 + 面数 - 边数= 2。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#inc

uva 11178 计算集合模板题

题意: 求三角形行三个角三等分点射线交出的内三角形坐标。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <stack>#include <vector>#include <

90、k8s之secret+configMap

一、secret配置管理 配置管理: 加密配置:保存密码,token,其他敏感信息的k8s资源 应用配置:我们需要定制化的给应用进行配置,我们需要把定制好的配置文件同步到pod当中容器 1.1、加密配置: secret: [root@master01 ~]# kubectl get secrets ##查看加密配置[root@master01 ~]# kubectl get se

XTU 1237 计算几何

题面: Magic Triangle Problem Description: Huangriq is a respectful acmer in ACM team of XTU because he brought the best place in regional contest in history of XTU. Huangriq works in a big compa

poj 2187 凸包or旋转qia壳法

题意: 给n(50000)个点,求这些点与点之间距离最大的距离。 解析: 先求凸包然后暴力。 或者旋转卡壳大法。 代码: #include <iostream>#include <cstdio>#include <cstdlib>#include <algorithm>#include <cstring>#include <cmath>#include <s

Flutter 进阶:绘制加载动画

绘制加载动画:由小圆组成的大圆 1. 定义 LoadingScreen 类2. 实现 _LoadingScreenState 类3. 定义 LoadingPainter 类4. 总结 实现加载动画 我们需要定义两个类:LoadingScreen 和 LoadingPainter。LoadingScreen 负责控制动画的状态,而 LoadingPainter 则负责绘制动画。

Android 10.0 mtk平板camera2横屏预览旋转90度横屏拍照图片旋转90度功能实现

1.前言 在10.0的系统rom定制化开发中,在进行一些平板等默认横屏的设备开发的过程中,需要在进入camera2的 时候,默认预览图像也是需要横屏显示的,在上一篇已经实现了横屏预览功能,然后发现横屏预览后,拍照保存的图片 依然是竖屏的,所以说同样需要将图片也保存为横屏图标了,所以就需要看下mtk的camera2的相关横屏保存图片功能, 如何实现实现横屏保存图片功能 如图所示: 2.mtk

音视频入门基础:WAV专题(10)——FFmpeg源码中计算WAV音频文件每个packet的pts、dts的实现

一、引言 从文章《音视频入门基础:WAV专题(6)——通过FFprobe显示WAV音频文件每个数据包的信息》中我们可以知道,通过FFprobe命令可以打印WAV音频文件每个packet(也称为数据包或多媒体包)的信息,这些信息包含该packet的pts、dts: 打印出来的“pts”实际是AVPacket结构体中的成员变量pts,是以AVStream->time_base为单位的显