我有一堆构成单个图像的图块,这些图块根据请求呈现(通过屏幕上可见的部分总图像)。合成图像比屏幕大得多。每个图块紧邻其邻居放置,以创建单个图像的幻影(如果没有平铺,则单个图像将太大并且具有OOM错误)。Android - 在运行时缩放视图组(布局)
这些是在FrameLayout中的ImageViews,用top/leftMargin定位。
靶向API 2.2/SDK 8
我试图响应于用户事件(按钮按压,夹持等)来缩放整个图像。
显然setScale在API 11之前是不可用的。我尝试使用setWillNotDraw(false)在FrameLayout的onDraw中使用canvas.scale,并调用onDraw,但没有应用缩放(我假设因为布局本身没有任何图像信息?我曾假设它会呈现它的孩子,但我想不是,除非我在这里做错了什么)。
我想我可以迭代通过每个瓷砖和独立的规模,但每次都需要重新定位每个瓷砖。
我不得不认为有一种方法可以缩放父视图(ViewGroup?),以便它的所有子项都被缩放(像负责管理GUI的其他语言一样)。我错过了什么?
由于
哇,这是相当大开眼界的,谢谢!但我认为这是有道理的(知道答案容易得出结论;))。我们不希望将画布保存并恢复到之前的状态,因为这是我们想要的更改,直接在同一图层上进行。再一次,欢呼:) – aMiGo
关于canvas.save()和canvas.restore(),我一直在做同样的事情。事实上没有它们,它正在工作。所以你可以告诉我为什么在[android开发页面](http://developer.android.com/training/gestures/scale.html)他们把这些行? – AsafK
@AsafK我不知道。 – momo