0

我很困惑,我试图设置一个盒子的最小宽度,对于我希望它的最小宽度为屏幕宽度的 20% 的所有设备。我怎样才能做到这一点?

我从平板电脑和 XHDPI Galaxy S3 获得了两个屏幕的 dpWidth。S3 的 dpWidth 为 300,平板电脑为 800。在这种情况下,我可以通过计算 20% 的 dpWidth 并将其设置为我的盒子 dp 值以编程方式执行此操作。

我猜我不能使用重量,因为它只是为了宽度。那么如何在 XML 中做到这一点呢?

还有一个后续问题, dp 到底有什么用?如果一个设备可以有 300 和另一个 800,那么 dp 的效果会发生巨大的变化!我不明白为什么没有更多有用的单位可以使用,即屏幕分为 100 个单位或其他东西。

4

1 回答 1

3

您可以使用重量。线性布局中的权重仅在布局方向上计算。所以如果你有一个水平的LinearLayout,权重将控制相对宽度。如果您希望该布局中的项目跨越整个屏幕,请将它们全部设置为 fill_parent,相应地设置权重(3:1 使其为 75/25%),然后将父布局的宽度设置为 0dp。结果将是按您指定的权重分解的全屏布局。

dp 很有用。1 dp 基本上是 1/160 英寸。如果您希望事物保持真实世界的大小,请使用 dp. 如果您希望它保持以像素为单位的固定大小,请使用 px。如果您希望大小非常基于字体大小,请使用 sp。

于 2013-03-04T21:38:09.170 回答