activity_main.xml
<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.divakar.dynamicbuttoningrid.MainActivity"> <TableLayout android:id="@+id/mTlayout" android:layout_width="match_parent" android:layout_height="wrap_content" /> </RelativeLayout>
MainActivity.java
import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.Gravity; import android.widget.Button; import android.widget.TableLayout; import android.widget.TableRow; public class MainActivity extends AppCompatActivity { private TableLayout table = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); TableLayout displayLevels = (TableLayout) findViewById(R.id.mTlayout); final int screenWidth = dpToPx(getResources().getConfiguration().screenWidthDp); int i = 0; int j = 0; int levelNum = 8; TableRow row = new TableRow(this); TableRow.LayoutParams lp = new TableRow.LayoutParams(TableRow.LayoutParams.MATCH_PARENT, TableRow.LayoutParams.WRAP_CONTENT); row.setLayoutParams(lp); row.setGravity(Gravity.CENTER); int width = (screenWidth - (levelNum) * 4) / levelNum;//4: I don't remember name of it. It is default value.4dp or 4px... I don't remember exactly displayLevels.addView(row); while (i < levelNum) { Button iBtn = new Button(this); iBtn.setGravity(Gravity.CENTER_HORIZONTAL); iBtn.setMinimumWidth(100);//I set 100px for minimunWidth. iBtn.setWidth(width); iBtn.setText(Integer.toString(i + 1)); iBtn.setId(i + 1); //iBtn.setOnClickListener(btnclick); row.addView(iBtn, i); i++; } } private int dpToPx(int dp) { return (int) (dp * getResources().getDisplayMetrics().density + 0.5f); } }
No comments:
Post a Comment