【问题标题】:How to adjust the position and size of image view elements to take advantage of additional screen space on larger devices?如何调整图像视图元素的位置和大小以利用更大设备上的额外屏幕空间?
【发布时间】:2015-07-19 20:37:20
【问题描述】:

无论设备大小如何,图像视图元素都保持不变。因此,虽然针对 Nexus 6 等较小的屏幕进行了优化,但各种按钮和图像视图的方向或间距在 Nexus 7 等平板设备上并不合适。

这是因为 layout_widthlayout_height 属性是专门定义的吗?

关于长宽比,部分问题的回答建议表明使用android:scaleType=fitXY没有产生任何有效结果。

<ImageView
    android:scaleType="fitXY"
    android:id="@+id/ring"
    android:layout_centerHorizontal="true"
    android:layout_marginBottom="58dp"
    android:contentDescription="@null"
    android:src="@drawable/ring"
    android:layout_width="200dp"
    android:layout_height="200dp" />

图像视图元素是否必须同时调整大小和缩放?

有些类似的问题:

Layout screwed up on bigger screen sizes.

How to evaluate view size to keep same proportion in all devices?

【问题讨论】:

  • 你的问题到底是什么,你为什么要改变宽度/高度? ImageView 默认保留其图像的纵横比...
  • 我不知道你在说什么,“图像视图只是没有按比例放大”是什么意思?
  • 当然有,只要使用 layout_width / layout_height = "match_parent",如果你指定 200dp 那么它的 200dp,如果你使用 match_parent 它们会填满可用空间
  • 按钮?什么按钮?我在您的布局文件中没有看到任何按钮
  • 那么 有什么问题?它不实用吗?为什么?

标签: java android


【解决方案1】:

您应该使用百分比来表示图像的宽度和高度,如下所示

        android1:layout_width="0dip"
        android1:layout_height="fill_parent"
        android1:layout_weight="0.4885" 

【讨论】:

    【解决方案2】:

    对元素使用layout-weight 属性。 假设在 layout 内部,有 2 个 TextView 元素。 将layout-weight="1" 设置为第一个,layout-weight="2" 设置为第二个,无论屏幕大小如何,都会以1:2 的比例将总可用空间分配给2 个TextView 元素。因此,不要使用dp 值作为尺寸,而是使用layout-weight 属性来指示您希望元素覆盖多少空间。

    【讨论】:

    • 所以android:scaleType 在这种情况下不是必需的,对吧?
    • 没有。如果您使用布局权重,则不需要 scaleType。事实上,我个人认为,就可扩展性而言,控制权重是最佳实践。您可以通过控制布局中每个项目的重量比例来实现大多数事情。
    猜你喜欢
    • 2017-04-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-11
    • 1970-01-01
    • 1970-01-01
    • 2011-02-03
    相关资源
    最近更新 更多