Ответ 1
Лучше не упоминать атрибуты height
и width
в layer-list
. Когда вы используете это как возможно, скажем, ImageView (ширина и высота ImageView будут переопределять значение, указанное в элементе/форме).
Вы можете использовать top, bottom, left, right
для выравнивания ваших элементов в списке слоев.
Примечание: атрибуты высоты и ширины элемента поддерживаются только с API 23.
Вот рабочий пример (протестирован в Android 7.0 и Android 4.4):
sample.xml
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/menu"
android:left="16dp"
android:right="16dp"
android:gravity="center">
<bitmap
android:src="@drawable/menu_icon" />
</item>
<item
android:top="8dp"
android:left="56dp"
android:right="24dp"
android:bottom="42dp">
<shape android:shape="oval">
<solid android:color="@android:color/holo_red_dark"/>
</shape>
</item>
</layer-list>
main.xml
<ImageView
android:layout_width="72dp"
android:layout_height="72dp"
android:src="@drawable/sample"
android:scaleType="fitCenter"/>
Вы также можете использовать wrap_content
для высоты и ширины в ImageView.