2016-04-07 8 views
0

FrameLayoutを使用して、プログラムで4次元4次元のボタンを使用して行列を作成しようとしていました。FrameLayoutにプログラムでボタンを追加しています

button = new Button[16]; 
for(int i = 0; i < button.length; i++) 
{ 
    button[i] = new Button(this); 
    button[i].setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT)); 
    button[i].setText("" + i); 
    button[i].setOnClickListener(this); 
    frameLayout.addView(button[i]); 
} 

ここでは、ボタンを作成しましたが、プログラムを実行すると重複します。

4x4マトリックスを作成するためにframeLayoutのボタンをどのように揃えることができるか教えていただければと思います。

答えて

0

これを試してみてください、あなたのxmlで

プットこれを:

<LinearLayout 
    android:id="@+id/linearlayout" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:orientation="vertical"/> 

そして、あなたにこのコードを入れアクティビティ:

LinearLayout linearlayout = (LinearLayout) findViewById(R.id.linearlayout); 

for (int i = 1; i <= 4; i++) { 
     LinearLayout linearLayoutHoriztonal = new LinearLayout(this); 
     linearLayoutHoriztonal.setOrientation(LinearLayout.HORIZONTAL); 

     for (int j = 1; j <= 4; j++) { 

      linearLayoutHoriztonal.addView(createButton("" + i)); 
     } 
     linearlayout.addView(linearLayoutHoriztonal); 
    } 

ボタンを作成するには、このメソッドを追加します。

private Button createButton(String number) { 
    Button button = new Button(this); 
    button.setText(number); 
    button.setPadding(5, 0, 5, 0); 
    button.setTextSize(14f); 
    LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(WRAP_CONTENT, convertToPixel(40)); 
    layoutParams.setMargins(convertToPixel(10), convertToPixel(10), 0, 0); 

    button.setLayoutParams(layoutParams); 

    return button; 
} 

private int convertToPixel(int n) { 
    Resources r = getResources(); 
    float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP, n, r.getDisplayMetrics()); 
    return (int) px; 
} 
関連する問題