Добавление и позиционирование drawable в drawable

#android #android-layout

#Android #android-макет

Вопрос:

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

Я мог бы сделать это на устройствах Android с API > = 23, используя следующий код:

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

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white"/>
        </shape>
    </item>

    <item android:drawable="@mipmap/ic_launcher_round"
          android:gravity="left|bottom"
          android:height="100dp"
          android:width="100dp"
          android:bottom="30dp"/>

    <item android:drawable="@mipmap/ic_launcher_round"
          android:gravity="bottom|right"
          android:height="80dp"
          android:width="80dp"
          android:bottom="43dp"/>

</layer-list>
  

Но на других устройствах drawable выглядит следующим образом:

как это отображается в API < 23

Комментарии:

1. Можете ли вы попытаться поместить это <item>...<bitmap android:src="@mipmap/ic_launcher_round"/> </item>

2. как мне изменить размер? Это дало тот же результат

3. Какой уровень API использует второе устройство?

Ответ №1:

Измените свой layer-list на этот :

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

    <item>
        <shape android:shape="rectangle">
            <solid android:color="@android:color/white"/>
        </shape>
    </item>

    <item
        android:height="100dp"
        android:width="100dp"
        android:bottom="30dp">
        <bitmap
            android:gravity="left|bottom"
            android:src="@mipmap/ic_launcher_round" />
    </item>

    <item
        android:height="80dp"
        android:width="80dp"
        android:bottom="43dp">
        <bitmap
            android:gravity="bottom|right"
            android:src="@mipmap/ic_launcher_round" />
    </item>

</layer-list>
  

Также убедитесь, что, если вы собираетесь использовать разные изображения, вы разместили их в разных папках :

hdpi ldpi mdpi xhdpi xxhdpi