所以,我正在考虑使用百分比,例如,在边距中。
我们可以使用叠加来按dpi尺寸分隔布局,但为什么我们不能使用百分比?
类似的东西:
Display display = getWindowManager().getDefaultDisplay();
float width = display.getWidth();
float height = display.getHeight();
//20% of left margin
float imageMarginLeft = ( width * 20 ) / 100;
然后将此边距设置为图像或任何元素。
这不好吗?我只想讨论它。
感谢。
答案 0 :(得分: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的物理屏幕尺寸变化很大。不可思议的一半屏幕与Galaxy S III的屏幕的一半大不相同,这与Nexus 7的屏幕的一半大不相同等。使用dp单位的好处是它们与物理尺寸有关在屏幕上的东西。它可以防止按钮在微小的屏幕上变得很小(并且难以选择),并且可以防止它们在大屏幕上变得非常大(而且难看)。