2011-01-21 2 views
3

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

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

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

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

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

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

+0

решаемые с нижеследующим, обеспечение ImageView находится в верхней части XML так, что позади всех остальных элементов управления:

ответ

4

Я использовал 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

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

+1

Я изменил макет bg1.xml в своем исходном сообщении, чтобы использовать вставку с набором вставки. Тем не менее, все содержимое макета вставляется не только в фоновый рисунок. Я ожидал, что фон будет рассматриваться как «водяной знак», как веб-страница, и я удивлен, что основное содержимое затронуто. Возможно, я должен просто использовать позиционированный ImageView? –

Смежные вопросы