Центрирование растрового изображения и повторение краевого пикселя

Я пытаюсь использовать изображение в качестве фона в моем приложении для 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. Край повторяется по вертикали, но не по горизонтали.

Я также пытался создать xml-drawable с tileMode = "clamp"

<?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"
/>

, но это не позволяет мне центрировать изображение по горизонтали. Как я могу комбинировать фиксатор и center_horizontal?

6
задан Michael Kowhan 16 June 2011 в 12:08
поделиться