0

在这里,我有一个 320X480 的图像(照片),想把它作为我的背景图像放在应用程序中。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" 
    android:background="@drawable/background">    

</RelativeLayout>

但是,当我把它放在不同的设备上时,图像会变得很奇怪(我不知道它是否奇怪,因为它重新调整了图像的大小)。
那么,如何解决这个问题呢??
因为有一张照片,照片里只有一个人。如果这个人在设备 A 中看起来很瘦,但在设备 B 中看起来很胖,那会很奇怪。

4

1 回答 1

1

有很多方法可以为全屏创建背景。我推荐的3个解决方案如下:

一个图像作为背景解决方案是最常用于此工作的解决方案,您必须为每个主要屏幕尺寸制作一个 = ldpi、mdpi、hdpi 和 xhdpi 并制作它:

  1. 以与居中图像融合的纯色背景颜色在布局中居中,或
  2. 使它成为一个 9-patch 图像,以适当的方式拉伸。
  3. 第三种解决方案是创建一个平铺布局,您可以在其中使用一个图像,然后以平铺方式将其复制到整个屏幕上。
  4. 在某些情况下可能会起作用的是拥有 1 张图像,然后根据屏幕尺寸将其剪掉。这可能有效,但如果图像太大,它会在小型/旧手机上出现内存不足异常,因此再次为 ldpi、mdpi、hdpi 和 xhdpi 提供 1 个图像。

(1) 的示例:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@android:color/black">
    <FrameLayout
        android:background="@drawable/splash"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        >
    </FrameLayout>
</RelativeLayout>

初始图像可以有任何大小,重要的是图像的外部部分与背景颜色混合,这可以通过让图像的背景颜色慢慢混合为与背景相同的颜色来完成。

(4) 的示例:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:background="@android:color/black">
    <ImageView
        android:background="@drawable/splash"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:scaleType="centerCrop"
        >
    </ImageView>
</RelativeLayout>
于 2012-08-28T08:34:46.773 回答