Android - 以毫米为单位设置 TextView 的布局参数
我相信您可以使用类似以下内容动态地将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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
LayoutParams
可以采用常量之一(FILL_PARENT
,WRAP_CONTENT
) 或像素值。由于您想使用毫米,因此必须将毫米尺寸转换为像素尺寸。这样做非常简单:在本例中,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: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 asTypedValue.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.