(這是Android: How do you scale multiple views together?有些一個後續)比例的視圖及其分層的子視圖相對
我的任務是端口在Android的iPhone/iPad應用,它由在其上的動畫是分層的簡單圖像視圖的在絕對位置頂部。雖然這在iOS上聽起來相當簡單,但您只需要定位幾種可能的屏幕尺寸,但Android會變得相當混亂。
我目前的設置是這樣的:一個RelativeLayout,其中我將主要(背景)圖像放置在左側= 0,頂部= 0和多個ViewFlipper實例用作「動畫容器」,相對於左上角父佈局實例。
這種方法有兩個基本問題:
所定位的「動畫」是錯誤放置儘快佈局的實際尺寸並不主要背景圖像的大小相匹配。
定位的「動畫」的尺寸也很大,因爲由於它們通常在自己周圍有「足夠的空間」,所以Android不會將它們縮放到RelativeLayout中(它也不會將它們縮放到原始背景。
由於動畫本身必須是交互式的,它不是一個解決方案,其具有的尺寸與主(背景)圖像相同的透明層上放置和位置所有的動畫,因爲它們會重疊互相之間,只有最上面纔會互動。
我想到了differen牛逼的解決方案:
讓主圖像的比例因子,我可以檢索其
measuredWidth
和measuredHeight
並設置該到原始width
和視圖height
的關係。然後我會使用這個比例因子進行自定義定位並最終進行自定義縮放。但是,顯然measuredWidth/-Height
屬性僅在onMeasure()調用期間設置,並且在構建組件樹後調用,因此我不知道該解決方案是否可行。執行我自己的佈局管理器並相應地縮放/放置視圖。我看了一下
RelativeLayout
的實現,但不得不承認onMeasure()方法讓我有點害怕。
你會在我的情況下做什麼?我還沒有考慮到什麼嗎?
在此先感謝。
有趣的東西。我認爲這是一種相關性,我認爲這是一個可縮放的RelativeLayout,我正在嘗試做一些短時間的事情。我的原始問題和我的最終解決方案記錄在這裏:http://stackoverflow.com/questions/6378904/extending-relativelayout-and-overriding-dispatchdraw-to-create-a-zomable-view – Trevor
事實上,你的解決方案是更好的工程比我的。感謝指針! –