Подтвердить что ты не робот

Как добавить дополнение к растровому изображению и цвет в списке слоев

Мне нужно создать drawable со списком слоев, чтобы фоновый слой был изображением, а передний план - прозрачным. Я могу это сделать. Там, где я не преуспеваю, добавляем некоторые отступы/края, чтобы у них снизу фрагмент изображений показывался без цветного слоя поверх него. Вот мой xml. Спасибо за помощь.

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
    <bitmap android:src="@drawable/img1" 
        />
  </item>

  <item>
    <shape
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:shape="rectangle" >
      <solid android:color="@color/color1" />
      <padding android:bottom="20dp" />
    </shape>
  </item>

</layer-list>

Поскольку эта конфигурация не работает, я предполагаю, что она будет помещаться в первый слой. Но я не уверен, как это сделать с растровым изображением

4b9b3361

Ответ 1

Переместите нижнее дополнение с shape на родительский item:

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
  <item>
    <bitmap android:src="@drawable/img1" />
  </item>
  <item android:bottom="20dp">
    <shape android:shape="rectangle" >
      <solid android:color="@color/color1" />
    </shape>
  </item>
</layer-list>

Подробнее см. http://idunnolol.com/android/drawables.html#layer-list.

Ответ 2

Оберните растровое изображение внутри вложенной вставки и установите там прокладку

Ответ 3

Если вы добавите выделение в тот же элемент в списке слоев, вы можете применить к нему такие свойства, как android:top, android:bottom, android:left или android:right.

Я исправил свою проблему с вытягиваемым явлением вне выравнивания с TextView, просто используя свойства android:width и android:height.

например.

<item
    android:width="26dp" android:height="26dp"
    android:drawable="@drawable/ic_person">
    <shape android:shape="rectangle" >
        <solid android:color="@android:color/transparent" />
    </shape>
</item>