需求描述

关机充电图标的修改地址在哪里?替换照片有哪些格式要求?

实现方案

图片路径:
system/core/healthd/images/
关机充电:
system/core/healthd/healthd_mode_charger.cpp
字体路径:
bootable/recovery/minui/graphics.cpp
bootable/recovery/minui/font_10x18.h

充电图标和电量百分比显示主要在函数 healthd_mode_charger_heartbeat中实现:

void healthd_mode_charger_heartbeat()
{struct charger *charger = &charger_state;int64_t now = curr_time_ms();handle_input_state(charger, now);handle_power_supply_state(charger, now);/* do screen update last in case any of the above want to start* screen transitions (animations, etc)*/update_screen_state(charger, now);
}

battery_scale.png是由6张不同充电状态的图片的合成,对应状态如下:

static struct frame batt_anim_frames[] = {{.disp_time = 750,.min_capacity = 0,.level_only = false,.surface = NULL,},{.disp_time = 750,.min_capacity = 20,.level_only = false,.surface = NULL,},{.disp_time = 750,.min_capacity = 40,.level_only = false,.surface = NULL,},{.disp_time = 750,.min_capacity = 60,.level_only = false,.surface = NULL,},{.disp_time = 750,.min_capacity = 80,.level_only = true,.surface = NULL,},{.disp_time = 750,.min_capacity = BATTERY_FULL_THRESH,.level_only = false,.surface = NULL,},
};

battery_scale.png图片的制作

利用系统源码中的脚本bootable/recovery/interlace-frames.py,即能将battery_scale.png拆分成几张png图片,也可以将若干张png图片合成一张battery_scale.png

合成图片命令

python interlace-frames.py -o battery_scale.png battery00.png battery01.png battery02.png battery03.png battery04.png battery05.png

拆分图片命令

python interlace-frames.py -d battery_scale.png -o battery.png

拆分后的原生关机图片格式:位深度8,png格式 ,分辨率为120x186
测试后发现位深度不限,分辨率可以与屏幕分辨率相同,格式为png即可,但如果遇到图片替换后黑屏不显示充电图标,建议使用和原生格式一致的。


battery_scale.png使用adb导入

adb root
adb remount
adb push battery_scale.png res/images/charger
adb reboot

附件工具

XnConvert——批量转换图片位深度工具

Android系统自定义关机充电图标相关推荐

  1. android 9.0关机充电流程,充电图标和电量显示百分比修改

    android 9.0关机充电图标和字体修改 相关源文件 电量显示百分比字体替换 充电图标替换 相关源文件 system/core/healthd/healthd_draw.cppsystem/cor ...

  2. android 系统(34)--关机充电图标修改

    关机充电图标修改 关机充电图标修改 关机充电main函数 函数set_draw_anim_mode 函数pthread_mutex_init 函数bootlogo_init 函数alarm_contr ...

  3. android 系统重启关机 方法 非常好的一篇文章

    1.5 android 系统重启关机流程分析 1.5.1 c语言中调用 reboot 函数  HAL层中重启系统的方法 bionic/libc/unistd/reboot.c:33: 使用需要的头文件 ...

  4. android系统添加关机铃声

    最近客户有个需求,要给设备加上开关机的铃声,网上搜了一下,开机铃声已经有解决办法,直接修改bootanimation实现,但是关机铃声却没有好的实现方法,于是决定自己来实现这个功能. 首先要确定实现这 ...

  5. HTC Android系统 自定义ROM定制图文教程

    小弟写得差 请勿拍砖,如果有意见请直接回复本贴!谢谢! 技术有限,部分可能不详细或者错误的请各位指出,大家交流! 前言: 一个完整的ROM根目录会有以下几个文件夹及文件: data META-IN s ...

  6. Android (系统+自定义)短视频录制(含暂停继续录制功能) 总结

    前言 在Android开发中自然少不了对视频录制的需求,然而视频录制虽然有系统提供给我们能够直接使用的API,但是我们往往在完成需求的过程中需要自定义实现短视频录制.网上虽然也有不少资料,但是总是零零 ...

  7. [Android系统开发]Launcher Hotseat图标居中排列

    目录 背景 问题点 解决过程 完整代码 遗留问题 1.初始化刷新问题. 2.图标覆盖问题. 后续思考 ​之前接手一个和Hotseat自动排列相关的Bug,本身实现方案是参考博文 Hotseat 自动排 ...

  8. Android系统状态栏的信号图标显示流程简介

    一方面,NetworkControllerImpl.java通过onRecieve方法接收Ril发送的广播,首先,获取广播发送的Intent的action,根据广播的类型(有这几大:wifi类型,电话 ...

  9. Android 系统自带的图标

    为什么80%的码农都做不了架构师?>>>    转载于:https://my.oschina.net/amigos/blog/59757

最新文章

  1. nodejs获取ASP.Net WebAPI(IIS Windows验证)
  2. 单例销毁_【PHP设计模式】单例模式
  3. vue 筛选组件_记一个复杂组件(Filter)的从设计到开发
  4. python为类定义构造函数
  5. Mac OSX 安装nvm(node.js版本管理器)
  6. html 最小长度单位,html见长度单位尺寸单�?CSS布局HTML
  7. VMware虚拟机文件
  8. [转]关于SilverLight:你需要知道的十件事情
  9. Archlinux桌面配置指南
  10. SWAT模型学习小技巧(一)
  11. 电子电路基础 (13)——数字电路基础 - 逻辑电路
  12. GoldWave音频混合剪辑教程
  13. 【微信小程序教程】点击按钮修改view标签背景颜色
  14. 不要跟别人争对错,争了,对也变成错了。
  15. 几款自制SDR的USB耗电测试
  16. 假如我国国民生产总值年增长率为7%,计算10年后我国国民生产总值与现在增长相比增长多少。
  17. 为了让你高效工作,华为云桌面是这样做的
  18. XechWic工作室,视频会议,p2p开发库
  19. 探索式测试--第四章(全局探索式测试法)--读书笔记
  20. 阿里云镜像网站 快速下载Centos各个版本 全流程

热门文章

  1. 百度地图调用手机陀螺仪完成指向功能
  2. 2019王道pdf(计算机网络、数据结构、操作系统、计算机组成原理)不要C币
  3. PAT乙 1015 德才论 C++
  4. RV1126笔记一:环境搭建及SDK编译
  5. 微信公众号开发----测试号的使用
  6. 计算机病毒相关试题,计算机病毒类考试题目以及参考答案
  7. 前谷歌员工推Cuil 获3300万风投对战老东家
  8. MapReduce模型过程详解
  9. 【jvm】jvm 参数设置查看与设置
  10. 全宇宙第一编辑器VS Code搭配Markdown打造云端笔记(二:MD语法速成)