2016-04-07 29 views
0

Ich habe versucht, Matrix mithilfe von Button mit einer bestimmten Dimension 4x4 programmgesteuert mit FrameLayout.Android Hinzufügen von Schaltfläche in FrameLayout programmgesteuert

Hier habe ich Schaltflächen erstellt, aber sie überlappen, wenn ich das Programm ausführen.

Ich würde wirklich schätzen, wenn mir jemand sagen würde, wie ich Knöpfe in frameLayout ausrichten kann, um 4x4 Matrix zu machen?

Antwort

0
diese

versuchen,

diese in deine xml:

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

Und diesen Code setzen in Sie Aktivität:

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); 
    } 

diese Methode Add Buttons zu erstellen:

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; 
} 
Verwandte Themen