2013-07-15 124 views
0

我是一名初學Android開發人員,但我在c#中有一些技能。我用c#做了一個滑動拼圖,我想在android上製作拼圖。如何設置按鈕位置

這是我的代碼:

TableLayout layout = new TableLayout(this); 
    setContentView(layout); 
    layout.setBackgroundColor(Color.GRAY); 
    final TextView text = new TextView(this); 
    layout.addView(text); 

    layout.setStretchAllColumns(true); 
    layout.setShrinkAllColumns(true); 

    int rows = 3; 
final int colomuns = 3; 


    for (int i = 0 ; i < rows ; i ++) 
    { 

     TableRow tr = new TableRow(this); 

     for (int k = 0 ; k < colomuns ; k++) 
     { 
      final int indexk = k+1; 
       final Button btn = new Button(this); 
       final int indexi = i; 
       final int index = indexi*colomuns+indexk ; 
       btn.setId(index); 
       btn.setTextSize(36); 
       btn.setPadding(20, 20, 20, 20); 
       btn.setTag(new Point(indexi, indexk)); 
       btn.setText(""+ index); 

       //layout params 
       TableRow.LayoutParams params = new TableRow.LayoutParams(); 
       params.setMargins(5, 5, 5, 5); 
       btn.setLayoutParams(params); 
       //---------------- 
       btn.setBackgroundColor(Color.WHITE); 
       btn.setOnClickListener(new View.OnClickListener() 
       { 
        public void onClick(View v) { 


         TableRow.LayoutParams leftViewParams = new TableRow.LayoutParams(); 
         leftViewParams.column = 1; 


         btn.setLayoutParams(leftViewParams); 
         Point p = (Point) btn.getTag(); 



        } 
       }); 
       tr.addView(btn); 

     } 

     layout.addView(tr); 
    } 

但是,我有一個問題,因爲我還沒有找到一個「位置」屬性,我想如何與佈局做到這一點?我選擇TableLayout是對的?

感謝,

回答

0

您應該添加的按鈕佈局,然後用利潤/填充抵消它的位置,你不應該是定位基於X,Y

使用左邊距和頂邊距按照您的要求嘗試和調整。

+0

沒有中的x的LayoutParams沒有ÿ –

0
TableRow.LayoutParams aa = new TableRow.LayoutParams(); 
aa = (android.widget.TableRow.LayoutParams) v.getLayoutParams(); 

TableRow.LayoutParams leftViewParams = new TableRow.LayoutParams(); 
leftViewParams.setMargins(aa.leftMargin + 50, 5, 5, 5); 
leftViewParams.column = aa.column +1; 
v.setLayoutParams(leftViewParams); 

這是結果:

image