【发布时间】:2026-01-30 02:50:01
【问题描述】:
我有一堆组成一个图像的图块,这些图块是根据请求渲染的(总图像的一部分在屏幕上可见)。合成图像明显大于屏幕。每个图块都紧挨着它的邻居放置,以创建单个图像的错觉(单个图像,如果不分块,将太大并出现 OOM 错误)。
这些是 FrameLayout 内的 ImageView,使用 top/leftMargin 定位。
定位 API 2.2 / SDK 8
我正在尝试缩放整个图像以响应用户事件(按钮按下、捏合等)。
显然 setScale 在 API 11 之前不可用。我尝试在带有 setWillNotDraw(false) 的 FrameLayout 的 onDraw 中使用 canvas.scale,并且正在调用 onDraw,但没有应用缩放(我假设是因为布局本身没有'没有任何图形信息?我以为它也会渲染它的孩子,但我想除非我在这里也做错了什么)。
我想我可以遍历每个图块并独立缩放它,但每次都需要重新定位每个图块。
我不得不认为有一种方法可以缩放父视图(ViewGroup?),以便它的所有子视图也可以缩放(就像负责管理 GUI 的所有其他语言一样)。我错过了什么?
谢谢
【问题讨论】:
标签: android