繁体   English   中英

如何在android中运行时在dp中设置按钮的宽度?

[英]How to set the width of a button in dp during runtime in android?

我有一个Android应用程序。 它中有很多按钮,但这些按钮是在运行时创建的。 如果我设置宽度button.setwidth(300) ,它将宽度设置为300px。 我希望宽度设置为dp。 有什么办法吗?

您必须使用TypedValue.applyDimension来获取dp的像素数。 这是一个例子:

DisplayMetrics dm = getResources().getDisplayMetrics();
float dpInPx = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DP, 300, dm);

这将以编程方式给出300dp的像素值。

干杯

没有setWidth(300dp)。 解决方法是获取显示大小,并相应地调整300px变量。

我必须说,可能有更好的方法来创建一个漂亮的布局。 您是否尝试过使用嵌套的linearlayouts和layout_weights?

Android没有单独的方法在dp中设置按钮的尺寸。 你必须:

//Find screen density scale factor
final float scale = getContext().getResources().getDisplayMetrics().density;
myButton.setWidth((int)(100 * scale));
myButton.setHeight((int)(50 * scale));

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM