fix(ui): fill the charging battery to the live percentage
The charging glyph kept a fixed yellow bar. Clear that bar from the icon and paint the cavity from the current percent, in the same yellow as the bolt. Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
parent
6f19486b16
commit
03062543e4
|
|
@ -481,7 +481,17 @@ void Draw_Status_Battery_Icon(uint8_t battery_percent)
|
|||
LCD_FillByColor(clear_x, 0, 240, UI0902_STATUS_SEP_Y, UI0902_BG_COLOR);
|
||||
|
||||
if (charging) {
|
||||
/* Type-C 插入:0918 闪电电池图,无电量填充,右侧仍显示百分比 */
|
||||
/* 内腔按实际电量填黄,再盖外壳和闪电(图标里不再烘焙固定黄条) */
|
||||
fill_w = (uint16_t)(((uint32_t)UI0902_BATTERY_CHG_FILL_MAX * battery_percent) / 100u);
|
||||
if (fill_w > UI0902_BATTERY_CHG_FILL_MAX)
|
||||
fill_w = UI0902_BATTERY_CHG_FILL_MAX;
|
||||
if (fill_w > 0) {
|
||||
fill_x1 = (uint16_t)(bat_x + UI0902_BATTERY_CHG_FILL_DX);
|
||||
fill_y1 = (uint16_t)(icon_y + UI0902_BATTERY_CHG_FILL_DY);
|
||||
fill_x2 = (uint16_t)(fill_x1 + fill_w);
|
||||
fill_y2 = (uint16_t)(fill_y1 + UI0902_BATTERY_CHG_FILL_H);
|
||||
LCD_FillByColor(fill_x1, fill_y1, fill_x2, fill_y2, UI0902_BATTERY_CHG_FILL);
|
||||
}
|
||||
LCD_WR_PIC_Trans(bat_x, icon_y, UI0902_BATTERY_CHG_W, UI0902_BATTERY_CHG_H,
|
||||
gImage_UI0902_BatteryCharging_40x13, BLACK);
|
||||
} else {
|
||||
|
|
|
|||
|
|
@ -148,9 +148,14 @@ void CallUI_UsbConfirm(void);
|
|||
#define UI0902_BT_HIT_Y1 (uint16_t)(UI_STATUS_BAR_H + 2)
|
||||
#define UI0902_BATTERY_W 29
|
||||
#define UI0902_BATTERY_H 12
|
||||
/* 0924 充电态:闪电电池图 40x13 */
|
||||
/* 0924 充电态:闪电电池图 40x13。外壳左壁在图内 x=11,内腔 x=14 起、宽 21 */
|
||||
#define UI0902_BATTERY_CHG_W 40
|
||||
#define UI0902_BATTERY_CHG_H 13
|
||||
#define UI0902_BATTERY_CHG_FILL_DX 14
|
||||
#define UI0902_BATTERY_CHG_FILL_DY 3
|
||||
#define UI0902_BATTERY_CHG_FILL_MAX 21
|
||||
#define UI0902_BATTERY_CHG_FILL_H 6
|
||||
#define UI0902_BATTERY_CHG_FILL 0xDF04 /* 与闪电同色 RGB(217,224,33) */
|
||||
/* 与音量/蓝牙大致居中后再下移 2px:12px 高 → 顶 y9 */
|
||||
#define UI0902_BATTERY_Y 9
|
||||
#define UI0902_BATTERY_RIGHT_MARGIN 6
|
||||
|
|
|
|||
|
|
@ -244,38 +244,38 @@ const unsigned char gImage_UI0902_BatteryCharging_40x13[1040] = { /* 40x13 RGB56
|
|||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x94,0x92,0xC6,0x18,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x29,0x40,0xCE,0x83,0xDF,0x04,0x7B,0xE2,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x42,0x21,0xDF,0x04,
|
||||
0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xA5,0x43,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xC6,0x18,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xCE,0x83,0xDF,0x04,0xDF,0x04,0x52,0xA1,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x6B,0x82,0xDF,0x04,
|
||||
0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xA5,0x43,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xFF,0xFF,0xD6,0x9A,0x00,0x00,
|
||||
0x00,0x00,0xB5,0xA3,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xCE,0x83,0xA5,0x43,0x52,0xA1,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x6B,0x82,0xDF,0x04,
|
||||
0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xA5,0x43,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xFF,0xFF,0xFF,0xFF,0x42,0x08,
|
||||
0x31,0xC1,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0x31,0xC1,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x6B,0x82,0xDF,0x04,
|
||||
0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xA5,0x43,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xFF,0xFF,0xFF,0xFF,0x42,0x08,
|
||||
0x00,0x00,0x00,0x00,0x29,0x40,0xDF,0x04,0xDF,0x04,0xDF,0x04,0x52,0xA1,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x6B,0x82,0xDF,0x04,
|
||||
0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xA5,0x43,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xFF,0xFF,0xD6,0x9A,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x31,0xC1,0xDF,0x04,0xDF,0x04,0x8C,0x62,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x5B,0x01,0xDF,0x04,
|
||||
0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xDF,0x04,0xA5,0x43,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xD6,0x9A,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x6B,0x82,0xDF,0x04,0x94,0xC2,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x31,0xC1,
|
||||
0x31,0xC1,0x31,0xC1,0x31,0xC1,0x31,0xC1,0x31,0xC1,0x29,0x40,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x42,0x08,0xFF,0xFF,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x84,0x10,0xC6,0x18,0x00,0x00,0x00,0x00,
|
||||
0x00,0x00,0x00,0x00,0xB5,0xA3,0xB5,0xA3,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
|
||||
|
|
|
|||
|
|
@ -144,6 +144,17 @@ def make_battery_outline():
|
|||
|
||||
|
||||
|
||||
def make_battery_charging():
|
||||
"""充电图只保留外壳和闪电。内腔黄条由界面按电量现画,不烘焙进图标。"""
|
||||
im = Image.open(SRC / "02_顶部图标" / "电池图标-充电状态-0924.png").convert("RGBA")
|
||||
px = im.load()
|
||||
# 外壳左壁 x=11/12,右壁 x=36/37;内腔黄条在 x=14 起。闪电在 x<=7。
|
||||
for y in range(2, 10):
|
||||
for x in range(13, 36):
|
||||
px[x, y] = (0, 0, 0, 0)
|
||||
return im
|
||||
|
||||
|
||||
def make_battery_fill():
|
||||
"""Solid white 22x9 level strip (do NOT use 电池电量 mockup — it embeds \"80%\" text)."""
|
||||
return Image.new("RGBA", (22, 9), (255, 255, 255, 255))
|
||||
|
|
@ -295,7 +306,11 @@ def main():
|
|||
total_int += len(data)
|
||||
|
||||
for name, rel in INTERNAL:
|
||||
data, w, h = rgba_to_rgb565(Image.open(SRC / rel))
|
||||
if name == "gImage_UI0902_BatteryCharging_40x13":
|
||||
im = make_battery_charging()
|
||||
else:
|
||||
im = Image.open(SRC / rel)
|
||||
data, w, h = rgba_to_rgb565(im)
|
||||
emit_c_array(c_lines, name, data, w, h)
|
||||
h_lines.append(f"extern const unsigned char {name}[{len(data)}];")
|
||||
total_int += len(data)
|
||||
|
|
|
|||
Loading…
Reference in New Issue