将位图居中并重复边缘像素

时间:2011-06-16 12:08:52

标签: android android-layout drawable

我想在我的Android应用程序中使用图像作为背景。如果图像不适合屏幕,我希望图像水平居中并垂直顶部。应通过重复边缘来填充剩余的屏幕区域。

我的布局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:background="@drawable/background_image"
>
    <ScrollView
        android:layout_width="fill_parent" android:layout_height="fill_parent"
    >
    ...
    </ScrollView>
</LinearLayout>    

我尝试使用draw9patch将左右列以及上一行像素标记为可伸缩。这似乎适用于较小的设备,但不适用于Galaxy Tab 10.1和Motorola Xoom。边缘垂直重复但不是水平重复。

我还尝试用tileMode =“clamp”创建一个xml-drawable

<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:filter="true"
    android:gravity="center"
    android:tileMode="clamp"
    android:src="@drawable/background"
/>

但这不允许我水平居中图像。 如何组合clamp和center_horizo​​ntal?

1 个答案:

答案 0 :(得分:8)

根据documentation“启用切片模式时忽略重力。”

可以使用自定义drawable来执行此操作。 Here是左右夹紧水平居中图像的示例。