【问题标题】:How to set the width of a button in dp during runtime in android?如何在android运行时设置dp中按钮的宽度?
【发布时间】:2012-06-16 03:06:14
【问题描述】:

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

【问题讨论】:

标签: android button


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      【解决方案3】:

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

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

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

      干杯

      【讨论】:

      • 它的 COMPLEX_UNIT_DIP ,一个小错字。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-23
      • 2013-09-23
      • 1970-01-01
      • 2011-05-20
      • 1970-01-01
      • 2011-04-25
      相关资源
      最近更新 更多