[英]Android adding button in FrameLayout programmatically
我試圖使用FrameLayout通過具有特定尺寸4x4的按鈕制作矩陣。
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]);
}
在這里,我創建了按鈕,但是運行程序時它們會重疊。
如果有人告訴我如何在frameLayout中對齊按鈕以制作4x4矩陣,我將不勝感激。
嘗試這個,
將其放在您的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;
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.