我有一堆構成單個圖像的圖塊,這些圖塊根據請求呈現(通過屏幕上可見的部分總圖像)。合成圖像比屏幕大得多。每個圖塊緊鄰其鄰居放置,以創建單個圖像的幻影(如果沒有平鋪,則單個圖像將太大並且具有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