Android:操作系统不会以相同的比例重新调整图像大小

时间:2012-08-15 19:00:08

标签: android

我对Android操作系统如何处理我的应用程序的大小调整感到困扰。基本上我的背景图像是480x800(宽480像素),图像底部也是480px。

在Galaxy S(480x800屏幕)上,一切看起来都很好,如下所示:

enter image description here

然而,在Galaxy S3(720x1280)上,背景被拉伸到720px宽,但底部的图像只有640px宽,如下所示:

enter image description here

我尝试创建一个包含640x960图像的xhdpi文件夹,但同样的事情发生(背景拉伸到720px,图像只有640px)。我也试过玩“ScaleType”,但到目前为止没有运气。

有谁知道为什么操作系统会以不同的比例重新调整两个图像的大小,以及如何修复它?

这是XML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:background="@drawable/bg" >

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/significados"
        android:layout_gravity="center"
        android:layout_marginTop="216dp"
        android:onClick="goToSignificados"
        />

    <Button
        android:id="@+id/button2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/ranking"
        android:layout_gravity="center"
        android:onClick="goToRanking"
        />

    <Button
        android:id="@+id/button3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@drawable/engracados"
        android:layout_gravity="center"
        android:onClick="goToEngracados"
        />

    <ImageView
        android:id="@+id/iv1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="60dp"
        android:clickable="true"
        android:contentDescription="@string/image"
        android:onClick="goToMarket"
        android:src="@drawable/googleplay" />

</LinearLayout>

1 个答案:

答案 0 :(得分:1)

您必须发布XML以获得更具体的答案,但基本上所有“视图”都可能以不同方式处理图像缩放。

在您的示例中,

您可以使用width = match-parent。

使按钮一直拉伸

“背景”默认会拉伸,但也可以平铺。 “按钮”将具有背景大小的最小尺寸,但在需要时将拉伸(按钮具有太多文本)

作为旁注,您不应该依赖于图像的确切像素。你应该调查nine-patch或制作平铺背景,并确保你利用“匹配 - 父母,引力等”之类的东西。