## 新增功能 - 图片删除:支持从 SPIFFS 彻底删除图片(物理删除 + 内存管理) - ContainerDle 管理:新增半透明圆形删除容器(含删除和返回按钮) - 状态管理:标志位模式管理 UI 状态,离开界面自动清理 ## 解决的关键问题 1. 开机闪烁 (⭐️⭐️⭐️⭐️⭐️) - 原因:LCD GRAM 保留旧数据 - 方案:背光使能前清空 GRAM(DMA 分批填充黑色,34ms) 2. 低功耗唤醒闪烁 (⭐️⭐️⭐️⭐️⭐️) - 原因:先恢复亮度后切换界面,看到旧界面 - 方案:先切换界面(背光=0)→ 延时 100ms → 恢复亮度 3. ContainerDle 状态保留 (⭐️⭐️⭐️⭐️) - 原因:LVGL 对象不销毁,状态被保留 - 方案:离开界面时主动清理(手势/按键回调中调用隐藏函数) 4. 按键回调冲突 (⭐️⭐️⭐️⭐️) - 原因:按键系统单回调限制 - 方案:统一在 main.c 管理 BOOT 按键,其他模块通过接口调用 5. 开机加载图片闪烁 (⭐️⭐️⭐️) - 原因:screen_init() 中 JPEG 解码触发渲染 - 方案:延迟到 LV_EVENT_SCREEN_LOADED 事件加载 ## 功能改动 - BOOT 按键增强:唤醒 + 退出手电筒 + 隐藏容器 + 返回 Home - 图片界面优化:支持删除当前图片并自动显示下一张 - 休眠管理优化:移除 BOOT 注册,避免回调冲突 ## 技术优化 - 资源节约:分批处理大数据(LCD GRAM 清除) - 时序优化:根据屏幕状态智能调整唤醒时序 - 模块化设计:按键集中管理 + 接口清晰 + 状态标志模式 ## 文件变更 - lcd/lcd.c: LCD GRAM 清除逻辑 - main.c: BOOT 按键统一管理 - pages/pages.c: 图片删除功能实现 - ui/screens/ui_ScreenImg.c: ContainerDle 管理 + 状态控制 - sleep_mgr/sleep_mgr.c: 按键回调优化 - ui/images: 新增删除和返回按钮图标 (s13.png, s14.png) Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
48 lines
1.1 KiB
C
48 lines
1.1 KiB
C
// This file was generated by SquareLine Studio
|
|
// SquareLine Studio version: SquareLine Studio 1.6.0
|
|
// LVGL version: 8.3.11
|
|
// Project name: Lcd_Pro
|
|
|
|
#ifndef _LCD_PRO_UI_H
|
|
#define _LCD_PRO_UI_H
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#include "lvgl.h"
|
|
|
|
#include "ui_helpers.h"
|
|
#include "ui_events.h"
|
|
|
|
///////////////////// SCREENS ////////////////////
|
|
#include "screens/ui_ScreenHome.h"
|
|
#include "screens/ui_ScreenSet.h"
|
|
#include "screens/ui_ScreenImg.h"
|
|
|
|
///////////////////// VARIABLES ////////////////////
|
|
|
|
// EVENTS
|
|
extern lv_obj_t *ui____initial_actions0;
|
|
|
|
// IMAGES AND IMAGE SETS
|
|
LV_IMG_DECLARE( ui_img_s8_png); // assets/s8.png
|
|
LV_IMG_DECLARE( ui_img_s11_png); // assets/s11.png
|
|
LV_IMG_DECLARE( ui_img_s12_png); // assets/s12.png
|
|
LV_IMG_DECLARE( ui_img_s9_png); // assets/s9.png
|
|
LV_IMG_DECLARE( ui_img_s6_png); // assets/s6.png
|
|
LV_IMG_DECLARE( ui_img_s10_png); // assets/s10.png
|
|
LV_IMG_DECLARE( ui_img_s1_png); // assets/s1.png
|
|
LV_IMG_DECLARE( ui_img_s13_png); // assets/s13.png
|
|
LV_IMG_DECLARE( ui_img_s14_png); // assets/s14.png
|
|
|
|
// UI INIT
|
|
void ui_init(void);
|
|
void ui_destroy(void);
|
|
|
|
#ifdef __cplusplus
|
|
} /*extern "C"*/
|
|
#endif
|
|
|
|
#endif
|