2013-03-22 33 views
1

我使用LayerDrawable將大點位圖('hotspots')動態放置在較大的位圖圖像上。索引0處的圖層包含大圖像。圖像上的點的位置是以大圖像的百分比指定給我的。例如,我可能有一個熱點,應該是從左邊的50%,從大型基本圖像的頂部75%。爲了在圖像的正確部分的點位置時,我使用在LayerDrawable上使用setLayerInset與位圖給出了意想不到的結果

setLayerInset(layer, leftOffset, topOffset, rightOffset, bottomOffset) 

以及基於含有所述LayerDrawable的ImageView的寬度和高度的偏移量。我很高興計算是正確的,正確的高度和寬度正在檢索,並期望點正確顯示,但他們不是。這些點沿着Y軸偏斜,並且它們的位置不正確(太高而太靠左)。有沒有人遇到類似的問題,並找到解決方案?

回答

10

我花了一天半的時間在做這個,試圖讓數字的意義,這裏是我的發現:

在我處理的,其中第一層包含BitmapDrawable和我的情況「M設定爲subseqent層插圖,在該呼叫的偏移:

setLayerInset(層,左偏移,topOffset,右偏移,bottomOffset)

相對於所述位圖的尺寸在所述第一層,即使這些尺寸大於其中的視圖e DrawableLayer被放置(例如,當位圖由視圖自動重新調整尺寸時)。

奇怪的和意想不到的,但是是真的。希望這能節省一些時間。

+3

附加問題:在設置LayerDrawable邊界之前調用setLayerInset,因爲setLayerInset似乎不會正確地使佈局無效,否則將不予考慮。 – 2014-06-16 13:07:49

相關問題