0

我相信您可以使用以下方式动态地将 layout_width 和 layout_height 设置为 textview 元素:

LayoutParams lparams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.FILL_PARENT);
centimeterLayout.addView(textview, lparams);

但是 - 我如何以其他单位设置布局宽度和高度 - 例如,我想将我的文本视图的布局宽度设置为 20 毫米。我怎么做?

4

1 回答 1

1

LayoutParams要么取一个常数( FILL_PARENT, WRAP_CONTENT)要么取一个像素值。由于要使用毫米,因此必须将毫米尺寸转换为像素尺寸。这样做很容易:

Resources r = getResources();
float px = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_MM, 20, 
                                     r.getDisplayMetrics());

在此示例中,20 mm 被转换为您可以在LayoutParams. 您也可以使用其他尺寸,例如TypedValue.COMPLEX_UNIT_DIPdp/dip¹。只需更改参数中的常量即可。android 文档有一个可用尺寸列表

¹与密度无关的像素,强烈推荐的尺寸,可适应许多不同的屏幕尺寸和密度。使用 mm 并不是最好的处理方式,因为您的文本在大屏幕上可能看起来还不错,并且会填满小屏幕的大部分,或者相反 - 这并不理想。我还推荐使用 sp 作为字体大小。详见尺寸表。

于 2011-10-09T11:13:22.670 回答