不同屏幕尺寸的图像尺寸不正确

时间:2018-01-26 01:20:02

标签: android

我有一个屏幕,我需要在水平LinearLayout中显示许多图像。

我为xhdpi设计了它。我将每个ImageView的大小设置为100dp,并在模拟器(xhdpi 768x1280 4.7“屏幕)上看起来像 在平板电脑模拟器(xhdpi 1534x2048 9“屏幕)上this看起来像this

在后者中,图像不能正确缩放,看起来就像在较小的屏幕上一样。

有没有办法让它在两种屏幕尺寸上看起来都一样?

3 个答案:

答案 0 :(得分:0)

要在不同的屏幕上调整您的布局,您需要将其设计为具有响应性。是的,就像G.Dator所说,你可以使用权重属性。这是一个例子:

<LinearLayout
    android:layout_height="200dp"
    android:layout_width="match_parent"
    android:orientation="horizontal">

    <ImageView
        android:layout_width="0dp"
        android:layout_height="200dp"
        android:layout_weight="25"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="200dp"
        android:layout_weight="25"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="200dp"
        android:layout_weight="25"/>

    <ImageView
        android:layout_width="0dp"
        android:layout_height="200dp"
        android:layout_weight="25"/>

</LinearLayout>

如果您有其他问题,请与我们联系。

答案 1 :(得分:0)

实际上,图像在2个设备中的大小相同。问题是手机的dp宽度(384dp)与平板电脑(767dp)之间存在差异。解决问题的方法很少:

  1. 为sw360和sw720使用多个布局文件。您可以查看此Google Guide
  2. ImageView adjustViewBound=true ImageView使用相同的权重来保持图像比率。
  3. 使用代码以编程方式设置{{1}}大小。

答案 2 :(得分:0)

除了实现响应式布局结构(如@Bhimbim所提到的)之外,还有一个库(https://github.com/intuit/sdp),当您想要编写一次代码并在多个不同的设备上使用它时,它可能很有用,它提供了您sdp单位而不是dp,这有助于您的观点更好地扩展。

实施例:

layout_width="@dimen/_30sdp"
layout_height="@dimen/_30sdp"

(抱歉,我最近没有注册,因此无法评论。)