2011-05-09 43 views
0

我用.xml創建了我的用戶界面,但是我想通過動態指定按鈕的方向。 舉例;Android中的動態按鈕指示

<AbsoluteLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent"> 
     <Button 
     android:id="@+id/backbutton" 
     android:text="TEST123" 
     android:layout_x="120px" 
     android:layout_y="120px" 
     android:layout_width="100px" 
     android:layout_height="100px" /> 
    </AbsoluteLayout> 

然後就是我的活動我班通過動態類似的改變的東西。

AbsoluteLayout al = new AbsoluteLayout(this); 
    Button t = new Button(this); 
    t.setHeight(300); 
    t.setWidth(300); 
    t.setText("TEST123"); 
    // x y ??? 
    setContentView(al); 

我改變了高度和寬度..但我找不到改變x和y方向的方法。

回答

1

嘗試setPadding(int top,int left,int right,int bottom)方法。

AbsoluteLayout al = new AbsoluteLayout(this); 
    Button t = new Button(this); 
    t.setHeight(300); 
    t.setWidth(300); 
    t.setText("TEST123"); 
    t.setPadding(120,120,0,0); 
    setContentView(al); 

我不知道你的屏幕的其他元素是如何裝修的,但我只是認爲按鈕,你在你的屏幕上有唯一的元素。

+0

你能舉個例子記錄我的代碼嗎? – Dapina 2011-05-09 20:31:07

+0

頂部,左邊,右邊,底部是什麼意思? – Dapina 2011-05-09 20:35:53

+0

它們是填充參數。 – yogsma 2011-05-09 20:38:08

0

順便說一句你知道1 dip =多少px?

http://developer.android.com/guide/practices/screens_support.html

密度獨立像素(DP) - 應用程序可以在確定其UI使用,以表達佈局尺寸或位置的密度無關的方式的虛擬像素。

與密度無關的像素相當於160 dpi屏幕上的一個物理像素,平臺假定的基準密度(如本文後面所述)。在運行時,平臺根據所使用屏幕的實際密度,透明地處理所需dp單位的任何縮放比例。將dp單位轉換爲屏幕像素很簡單:像素= dps *(密度/ 160)。例如,在240 dpi屏幕上,1 dp將等於1.5個物理像素。強烈建議使用dp單位來定義應用程序的用戶界面,以此來確保在不同屏幕上正確顯示您的用戶界面。

+0

我認爲接受其他答案是正確的,而不是我的可能是合適的。因爲它回答了實際的原始問題。我真的可以發表評論,但我不確定我是否有足夠的人物,所以我做了答案。 – FoamyGuy 2011-05-10 13:09:02