Как добавить отступы для фонового изображения - PullRequest
30 голосов
/ 26 апреля 2010

У меня есть LinearLayout, у которого есть фоновое изображение (9 исправленных файлов png). Как добавить отступы влево и вправо, чтобы фоновое изображение не занимало всю ширину? Я пробовал android:paddingLeft и android:paddingRight, но это ничего не меняет.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="25dip"
    android:paddingRight="25dip"
    android:background="@drawable/background">

Весь фон по-прежнему растягивается на всю ширину экрана.

Ответы [ 4 ]

96 голосов
/ 25 апреля 2013

Вы должны использовать xml drawable, специально разработанный для этой цели - Inset Drawable : http://developer.android.com/guide/topics/resources/drawable-resource.html#Inset

Например:

Рез / рисуем / inset_background.xml:

<?xml version="1.0" encoding="utf-8"?>
<inset xmlns:android="http://schemas.android.com/apk/res/android"
    android:drawable="@drawable/your_background_image"
    android:insetRight="25dip"
    android:insetLeft="25dip" />

и затем в вашем xml-макете:

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/inset_background">
6 голосов
/ 13 декабря 2015

Ваш фон для рисования должен быть таким: , используя android: bottom

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:bottom="48dp" android:drawable="@drawable/bg">
    </item>

</layer-list>
4 голосов
/ 26 апреля 2010

Это не работает, потому что заполнение действует только на содержимое LinearLayout. Используя второй LinearLayout внутри этого, дополнение вступит в силу. Вы должны определить цвет фона первого LinearLayout, который будет виден в области заполнения.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:paddingLeft="25dip"
    android:paddingRight="25dip"
    android:background="#FF000000">

    <LinearLayout
    android:orientation="horizontal"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/background">

    </LinearLayout>

</LinearLayout>

Примечание. Вероятно, это также возможно при использовании XML-файла для фона.

2 голосов
/ 19 февраля 2014

Вы можете просто использовать

<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:layout_marginLeft="25dip"
android:layout_marginRight="25dip"
android:background="@drawable/background">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...