Макеты Android - смещение фонового изображения в xml - PullRequest
3 голосов
/ 21 января 2011

У меня есть большой png, который я хотел бы использовать в качестве фона для разных макетов, но сместить его так, чтобы у меня могли отображаться различные части (как в CSS), предпочтительно в xml.

Мой основной макет для действия содержит следующий xml:

<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@layout/bg1">

Макет bg1 состоит из следующего xml:

<?xml version="1.0" encoding="utf-8"?>
<bitmap
xmlns:android="http://schemas.android.com/apk/res/android"
android:src="@drawable/big_image"
android:layout_marginTop="50sp"
android:paddingTop="50sp"
android:gravity="top|left" />

Свойство gravity работает как положено, но поля и отступы игнорируются, возможно потому, что я работаю с растровым объектом, а не с макетом. То, что я хочу сделать, это установить их на минус сумму, чтобы отображалась только часть изображения. Я пробовал использовать фигуру, но она только оборачивает содержимое, тогда как мне нужно заполнить весь фон.

Любые предложения будут с благодарностью приняты. Спасибо.

Ответы [ 2 ]

5 голосов
/ 31 января 2011

Я использовал ImageView с отрицательным значением верхнего поля.ImageView объявляется первым в макете, так что он является самым низким в стеке элементов управления и будет отображаться после остальных.

<RelativeLayout
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ImageView
        android:id="@+id/bigLogo"
        android:src="@drawable/big_logo"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"    
        android:layout_marginTop="-100px" />
</RelativeLayout>
2 голосов
/ 21 января 2011

Вы можете использовать InsetDrawable (он работает из XML), чтобы добавить дополнительные отступы в другой чертеж.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...