4

我正在尝试使用 setLayoutParams 方法来指定表格布局的图形参数,但我不确定 setLayoutParams 方法是否采用像素值或倾斜值,尤其是在 java 中存储的值似乎是像素值,例如,如果我声明这两个变量:

private int blockDimension = 50; 
private int blockPadding = 2; 

然后调用方法:

tableRow.setLayoutParams(new LayoutParams( (blockDimension + 2 * blockPadding) * numberOfColumnsInMineField,blockDimension + 2 * blockPadding) );

它们被视为像素还是在传递给方法后被转换?那么如果不是,我如何在 java 中设置 dip 值?

4

2 回答 2

7

它需要像素。要将 dp 转换为像素,您可以使用以下命令:

public int getPx(int dimensionDp) {
    float density = getResources().getDisplayMetrics().density;
    return (int) (dimensionDp * density + 0.5f);
}
于 2013-07-01T15:30:09.360 回答
0

如果你想要 dip 中的值,你必须将它乘以屏幕的密度你可以这样得到:

float density = getResources().getDisplayMetrics().density
于 2013-07-01T15:29:58.157 回答