我有一个drawable,它需要作为背景。它需要拉伸以填充屏幕(忽略纵横比)。
我为 ldpi、mdpi、hdpi 和 xhdpi 提供了合适的尺寸。(我知道它们通过相应的宽度和高度的比例是合适的,够了吗?)
我试图这样做如下:
在 imageView 上使用 scaleType:fitXY
这确实会在 imageView 周围(内部?)留下白边。
我不满意的一个解决方法是使用 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>