如何使表格布局屏幕独立



1.这是我的代码,我试图在表格布局的帮助下显示按钮矩阵。我也试图使这个矩阵屏幕独立,但这在大尺寸模拟器 properly.in 不起作用,它给问题按钮重叠

     TableLayout layout = new TableLayout (this);
     layout.setStretchAllColumns(true);
     Display display = ((WindowManager)       getSystemService(WINDOW_SERVICE)).getDefaultDisplay();
           int width = display.getWidth();  
           int height = display.getHeight();
           layout.setLayoutParams( new TableLayout.LayoutParams(height,width) );
            layout.setPadding(1,1,1,1);
            for (int f=0; f<=3; f++) 
            {
                TableRow tr = new TableRow(this);
                for (int c=0; c<=3; c++) 
                {
                    Button b = new Button (this);
                    b.setText(""+f+c);
                    b.setTextSize(10.0f);
                    b.setTextColor(Color.rgb( 100, 200, 200));

                  tr.addView(b,30,30);

                    final float scale = getBaseContext().getResources().getDisplayMetrics().density;
                    int pixels = (int) (dps * scale + 0.5f);
                     b.setHeight(pixels);
                     b.setWidth(pixels);

                } // for
                layout.addView(tr);
            } // for
            super.setContentView(layout);
        } 
        }

您正在以奇怪的方式设置布局参数。尝试使用:

layout.setLayoutParams( new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.WRAP_CONTENT));

按钮也有同样的问题。尝试使用这个:

Button b = new Button (this);
LayoutParams params = new LayoutParams(LayoutParams.WRAP_CONTENT,
            LayoutParams.WRAP_CONTENT);
params.gravity = Gravity.CENTER; // if you want it centered
params.span = 1;
b..setLayoutParams(params);
b.setText(""+f+c);
b.setTextSize(10.0f);
b.setTextColor(Color.rgb( 100, 200, 200));
tr.addView(b);

并且不要使用"比例"设置高度和宽度值。params.span = 1;部分应为表行中的每个元素提供相同的宽度。params.gravity = Gravity.CENTER;会将其居中放在表格单元格中。

或者你可以使用 GridLayout。在此处查看: 新的布局小部件:空间和网格布局

我不

熟悉TableLayout,但是您可以使用LinearLayout使按钮具有相同的大小。你可以有一个垂直的线性布局包装4个水平的线性布局,每个都有4个按钮,里面的布局权重相同。

线性布局示例:http://developer.android.com/resources/tutorials/views/hello-linearlayout.html

最新更新