[英]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.