2016-03-06 136 views
0

對不起,我的標題可能不是很明確。在我開始之前,只想讓你知道我在Android編程方面真的很新穎。在網格中以編程方式設置按鈕大小

所以,我想創建的是一個數獨板。它不一定是幻想,我寧願它保持簡單。這是迄今爲止我的onCreate方法:

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    GridLayout gridLayout = (GridLayout) findViewById(R.id.gridLayout); 

    for (int col = 0; col < 9; col++) { 
     for (int row = 0; row < 9; row++) { 
      Button b = new Button(this); 
      String text = row + "," + col; 
      b.setText(text); 
      b.setMinHeight(0); 
      b.setMinWidth(0); 
      b.setPadding(0,0,0,0); 

      GridLayout.LayoutParams params = new GridLayout.LayoutParams(); 
      params.setMargins(0,0,0,0); 
      params.height = LayoutParams.WRAP_CONTENT; 
      params.width = LayoutParams.WRAP_CONTENT; 
      params.setGravity(Gravity.CENTER); 
      params.columnSpec = GridLayout.spec(col); 
      params.rowSpec = GridLayout.spec(row); 

      b.setLayoutParams(params); 
      b.setId(row * 10 + col); 
      b.setOnClickListener(this); 
      gridLayout.addView(b); 
     } 
    } 
} 

我只是想創建一個9×9格按鈕(以後可能更改爲文本字段)。但是,我似乎無法水平顯示所有9個按鈕,而無需專門設置按鈕寬度。我如何創建一個視圖的正方形網格,以編程方式按屏幕大小進行縮放?

+0

請提出您的標題問題。 –

回答

1

檢查這篇文章,知道如何轉換像素DP:Set ImageView Size Programmatically in DP Java

,改變你的params.heightparams.width使用該方法與你的期望值。例如:

dpToPx(25); //size will be 25p 
+0

但是,這不僅僅是在尺寸相同但像素密度不同的顯示器上縮放?或者這將適用於所有尺寸和像素密度? – Zorobay

+0

Dp應該在所有密度下都能正常工作。 DP表示密度像素。 –

相關問題