2013-02-20 62 views
0

此問題看起來很基本,但找不到答案。將ImageView放置在特殊位置

我需要將imageView放置在屏幕上的特殊位置。假設我需要從頂部開始十分之三,從屏幕左側開始五分之一。

首先想到的是使用AbsoluteLayout並使用絕對座標放置imageView。但是,這種方法在使用不同的屏幕尺寸時會導致問題。問題是我無法在xml文件中獲得屏幕尺寸(寬度和高度),另一方面,我無法找到一個setX()/ setY()或類似的方法讓ImageView以編程方式執行。

解決此問題的一個想法是使用LinearLayout而不是AbsoluteLayout並插入僞視圖(如textVies)來填充所需imageView背後的空間。但是,如果我有多個imageViews放置在屏幕上,並且如果所需的位置不對齊,這會變得複雜。另一種解決方案是使用填充或邊距,但它不適用於AbsoluteView。

我不需要imageView與其他視圖處於相對位置,我只是需要它在屏幕上的特殊位置。

+0

如果deadest使用屏幕大小的百分比放置的LinearLayout用'機器人:layout_weight'是做的唯一途徑所以AFAIK。然而,你可以使用RelativeLayout並用dp單位指定你的利潤率,它們會將它們縮放到不同的密度,但我認爲它不會保持你的百分比的完整性 – FoamyGuy 2013-02-20 15:18:11

回答

0

雖然說AbsoluteLayout已過時,但是這個代碼爲我工作:

AbsoluteLayout.LayoutParams lp=new AbsoluteLayout.LayoutParams(width,height,x,y); 
    myImageView.setLayoutParams(lp); 
+0

這段代碼適合我:=> FYI,它看起來很好1-2設備,但它會在其他設備上縮小/拉伸。 – 2013-02-21 10:49:36