2013-06-20 50 views
1

我試圖動態創建這個XML:如何動態定義LinearLayout中的列和行?

<GridLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:columnCount="2" 
    android:rowCount="2" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:id="@+id/topleft" 
     android:layout_width="160dp" 
     android:layout_height="200dp" 
     android:layout_column="0" 
     android:layout_row="0"   
      > 

     <ImageView 
      android:id="@+id/myimage1" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"      
      android:src="@drawable/tetona"   
       />  

    ></LinearLayout> 

     <LinearLayout 
     android:id="@+id/topRigth" 
     android:layout_width="160dp" 
     android:layout_height="200dp" 
     android:layout_column="1" 
     android:layout_row="0" 
     >   
     <ImageView 
      android:id="@+id/myimage2" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"      
      android:src="@drawable/tetona" />      
    ></LinearLayout> 

     <LinearLayout 
     android:id="@+id/bottomRight" 
     android:layout_width="160dp" 
     android:layout_height="200dp" 
     android:layout_column="1" 
     android:layout_row="1" 
     >   
     <ImageView 
      android:id="@+id/myimage3" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"      
      android:src="@drawable/tetona" />      
    ></LinearLayout> 

     <LinearLayout 
     android:id="@+id/BottonLeft" 
     android:layout_width="160dp" 
     android:layout_height="200dp" 
     android:layout_column="0" 
     android:layout_row="1" 
     >   
     <ImageView 
      android:id="@+id/myimage4" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content"      
      android:src="@drawable/tetona" />      
    ></LinearLayout> 

</GridLayout> 

我能創造一個循環內LinearLayouts如:

GridLayout gridlay = (GridLayout)findViewById(R.id.gridpadre); 
gridlay.setColumnCount(2); 
gridlay.setRowCount(2); 

for (int i=0; i<(gridlay.getRowCount()); ++i){ 
    for(int j=0; j<gridlay.getColumnCount(); ++j){   

     LinearLayout layout = new LinearLayout(this); 
     layout.setId(id); 
     layout.setLayoutParams(new LinearLayout.LayoutParams(160,200)); 
     gridlay.addView(layout); 

但是...我如何設置的LinearLayout android:layout_column="i"android:layout_row="j"在動態爲了把它放在相對於gridlayout的位置i和j? 這可能嗎?

感謝

回答

0

嘗試執行以下操作:layout.setOrientation(VERTICAL);然後嘗試layout.setHorizontalGravity(j)因爲我沒有配備任何方式來測試其電腦我不知道它會工作,但它值得一試。

+0

謝謝,但它不工作:( –