Canvas Camera / 画布滚动

Canvas 是 U8g2 的 camera-aware 绘图外观。App 使用内容坐标绘图,camera 在调用 U8g2 前再转换为屏幕坐标。

可滚动 App

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class LongPage final : public IApplication {
public:
LongPage(PixelUI& ui, void*) : IApplication(true), ui_(ui) {}

void draw() override {
Canvas& canvas = ui_.getCanvas();
canvas.setFont(PIXELUI_FONT_TEXT);
canvas.setContentHeight(180);
canvas.drawUTF8(4, 12, "General");
canvas.drawUTF8(4, 92, "Network");
canvas.drawUTF8(4, 172, "About");
}

bool handleInput(InputEvent) override { return false; }

private:
PixelUI& ui_;
};

useVerticalScroll 开启后,App 未消费的 UP/DOWN 事件会让 camera 移动一个 viewport。有自己选择模型的 App 可调 ensureCanvasVisible()scrollCanvasTo()animateCanvasTo()

Canvas 会转换坐标类 U8g2 API。直接通过 getU8G2() 绘制的固定标题、Popup 和 Focus overlay 不受 camera 影响。ViewManager 会按 App 栈深度保存 y 和 content height,上层 App 退出后可恢复原滚动位置。

最新文章
网站信息
文章数目 :
1
本站访客数 :
本站总浏览量 :
最后更新时间 :