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

时间:2012-06-13 07:30:58

标签: android button

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

3 个答案:

答案 0 :(得分:10)

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

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

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

干杯

答案 1 :(得分:2)

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

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

答案 2 :(得分:2)

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

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