android - 使用百分比怎么样?

标签 android android-layout

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

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

类似的事情:

Display display = getWindowManager().getDefaultDisplay();

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

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

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

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

谢谢。

最佳答案

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 上的一半屏幕有很大不同,而 Galaxy S III 上的一半屏幕与 Nexus 7 等上的一半屏幕有很大不同。使用 dp 单位的好处是它们与物理尺寸相关屏幕上的事物。它可以防止按钮在小屏幕上变得很小(并且难以选择),也可以防止它们在大屏幕上变得巨大(并且难看)。

关于android - 使用百分比怎么样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11782648/

相关文章:

android - C++ android assetmanager 从应用程序内部目录读取文件

android - 如何在android中识别不同的形状并在其中填充颜色?

java - 如何接收RTP音频流Android?

java - 以编程方式向 Android 中的 LinearLayout 添加垂直和水平滚动

java - 在用户聊天 Activity 中组织消息

android - 如何判断经纬度是否准确

android - 从点云生成深度图

android - 旋转图层列表中的项目以显示启动画面

java - 使用 AsyncTask 更新 UI(动态布局)

java - 在长时间运行的线程完成之前显示 Android 布局?