2

所以,我正在考虑百分比的使用,例如,在边距中。

我们可以使用叠加来按 dpi 大小分隔布局,但为什么不能使用百分比呢?

像这样的东西:

Display display = getWindowManager().getDefaultDisplay();

float width = display.getWidth();
float height = display.getHeight();

//20% of left margin
float imageMarginLeft = ( width * 20 ) / 100;

然后将此边距设置为图像或任何元素。

这很糟糕吗?我只是想讨论一下。

谢谢。

4

1 回答 1

2

LinearLayout 可以通过使用权重来做百分比。

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal" 
    android:weightSum="100">

    <Button
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="20"
        android:text="Button" />
</LinearLayout>

如果大量使用基于权重的布局,则会影响性能,尤其是当它们嵌套时。以编程方式执行它也可能会影响布局时间。

编辑 由于您正在寻找讨论,我建议基于百分比的布局通常不好。问题是物理屏幕尺寸随 Android 变化很大。Incredible 上的一半屏幕与 Galaxy S III 上的一半屏幕有很大不同,这与 Nexus 7 上的一半屏幕等有很大不同。使用 dp 单位的好处是它们与物理尺寸有关屏幕上的东西。它可以防止按钮在小屏幕上变得很小(并且难以选择),并且可以防止它们在大屏幕上变得巨大(和丑陋)。

于 2012-08-02T18:20:54.047 回答