Android - 以毫米为单位设置 TextView 的布局参数

发布于 2024-12-09 01:20:23 字数 287 浏览 0 评论 0原文

我相信您可以使用类似以下内容动态地将layout_width和layout_height设置为textview元素:

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

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

I believe you can set layout_width and layout_height to textview element dynamically using something like:

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

But - how do I set the layout width and height in other units - e.g. I want to set the layout width of my text view to 20 mm. How do I do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

我的奇迹 2024-12-16 01:20:23

LayoutParams 可以采用常量之一(FILL_PARENT, WRAP_CONTENT) 或像素值。由于您想使用毫米,因此必须将毫米尺寸转换为像素尺寸。这样做非常简单:

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

在本例中,20 毫米被转换为可以在 LayoutParams 中使用的像素尺寸。您也可以使用其他维度,例如用于 dp/dip 的 TypedValue.COMPLEX_UNIT_DIP。只需更改参数中的常量即可。 Android 文档有一个可用维度列表

1 与密度无关的像素,这是强烈推荐的尺寸,可以根据许多不同的屏幕尺寸和密度进行调整。使用 mm 并不是最好的方法,因为您的文本可能在大屏幕上看起来不错并填充小屏幕的很大一部分,或者反之亦然 - 这并不理想。我还推荐 sp 作为字体大小。详细信息请参阅维度列表。

LayoutParams either take one of the constants (FILL_PARENT, WRAP_CONTENT) or a pixel value. Since you want to use millimeters, you have to convert a millimeter dimension to a pixel dimension. Doing so is pretty easy:

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

In this example, 20 mm are converted into a pixel dimension that you can use in your LayoutParams. You can use other dimensions too, such as TypedValue.COMPLEX_UNIT_DIP for dp/dip¹. Just change the constant in the arguments. The android doc has a list of useable dimensions.

¹ Density independend pixels, a highly recommended dimension that adjusts to the many different screen sizes and densities. Using mm isn't the best way to do things, since your text will probably look okay on a big screen and fill a big portion of a small screen, or the other way around - which is not ideal. I also recommend sp for font sizes. See the dimension list for details.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文