2011-05-18 79 views
2

在我的應用程序中,我使用方法setMargins(....)進行一些視圖。關於幫助:View.setMargins(left,top,right,bottom);

在我的佈局,我固定的我的「DP」,而不是像素視圖的寬度,heigth和大小,

和在我的代碼,當我設定邊距,它給出了一個壞的結果,但是當我在我的佈局中用px更改dp,那很好。

所以我的問題是:我可以設置邊距與DP值,?? 例如:

myView.setMargins(left in dp , top in dp , right in dp , bottom in dp) ; 

在此先感謝

回答

7

你可以做到這一點很容易,只需要定義維度元素(值的strings.xml),並在你的代碼中引用它們。

這是strings.xml中

<dimen name="left_border_distance">32dip</dimen> 

線,但你不需要把直接,而是通過IDE。

然後在你的代碼

int marginLeft = (int) getResources().getDimensionPixelSize(R.dimen.left_border_distance); 
myView.setMargins(marginLeft , top in dp , right in dp , bottom in dp) ; 
+0

您好,感謝您的快速回答:對,你能不能給我這樣一個例子PLZ, 二:是否有另一種方法來做到這一點,而不傳遞res/values/strings.xml? 謝謝Zelimir – Houcine 2011-05-18 09:00:14

+0

下面的答案描述了另一種方法。我更喜歡將GUI設計值放到資源中,而不是在代碼中使用硬編碼值。他們很容易從一個地方改變。 – Zelimir 2011-05-18 09:07:14

+0

你的方法是好的,但我正在開發一個SD廣告,所以我需要在代碼中定義,而不是在strings.xml :) – Houcine 2011-05-18 09:13:18