5

我有一个drawable,它需要作为背景。它需要拉伸以填充屏幕(忽略纵横比)。

我为 ldpi、mdpi、hdpi 和 xhdpi 提供了合适的尺寸。(我知道它们通过相应的宽度和高度的比例是合适的,够了吗?)

我试图这样做如下:

在 imageView 上使用 scaleType:fitXY

这确实会在 imageView 周围(内部?)留下白边。

fitXY 图像

我不满意的一个解决方法是使用 center 作为 scaleType ,如下所示:

我不满意,因为平板电脑屏幕上仍然存在问题。 在此处输入图像描述

笔记:

  • 正如您可能已经注意到的那样,我已经在 SO 的其他地方尝试了建议的修复,例如将 Adjust View Boundaries 设置为 true。他们在这里没有帮助。:(
  • 我想要一个非编程的答案/修复,就像在 XML 本身中那样。我真的不想编写代码来设置背景图像。生活应该比这简单得多。(:P)

更新1:

这是 XML 布局

<merge xmlns:android="http://schemas.android.com/apk/res/android" >

    <!-- <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" -->
    <!-- xmlns:tools="http://schemas.android.com/tools" -->
    <!-- android:id="@+id/FrameLayout1" -->
    <!-- android:layout_width="fill_parent" -->
    <!-- android:layout_height="fill_parent" -->
    <!-- tools:context=".SplashScreen" > -->


    <!--
         This FrameLayout insets its children based on system windows using
         android:fitsSystemWindows
    -->

    <View
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:onClick="onClickTapToContinue"
         >
    </View>

    <ImageView
        android:id="@+id/bg_gradient"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:layout_gravity="fill"
        android:adjustViewBounds="true"
        android:contentDescription="@string/this_is_the_background_image"
        android:scaleType="center"
        android:src="@drawable/bg_gradient" />

    <ImageView
        android:id="@+id/bg_artwork"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:adjustViewBounds="true"
        android:contentDescription="@string/artwork_man"
        android:src="@drawable/bg_artwork" />

    <!-- </FrameLayout> -->

    <ImageView
        android:id="@+id/branding"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center|top"
        android:adjustViewBounds="true"
        android:contentDescription="@string/branding_text"
        android:maxHeight="95dp"
        android:paddingTop="5dp"
        android:src="@drawable/title_wlcm" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="bottom|center"
        android:paddingBottom="5dp"
        android:text="@string/tap_continue"
        android:textAppearance="?android:attr/textAppearanceSmall"
        android:textColor="@android:color/white" />

</merge>
4

3 回答 3

2

不要使用 android:src="...",而是使用 android:background="..." 属性。希望它有效。

于 2014-07-01T11:30:47.880 回答
1

我现在要使用的技巧是将这些图像集用于手机,也许将另一组图像(和布局?)用于 WVGA(平板电脑)。

虽然还没有尝试过。我会尽快发布截图。

编辑:它与图像本身有关的数字。有透明填充物。会要求设计师修复它。:)

于 2013-01-12T20:12:57.893 回答
0

在eclipse中activity的图形化布局中,可以右键activity,然后选择“edit background”。这将允许您将图片设置为背景,覆盖屏幕的所有边缘。希望这会有所帮助,吉姆欢呼

于 2013-05-01T11:23:01.543 回答