Следующий код xml работает для установки ширины и высоты изображений для рисования внутри элементов layer-list
для 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="@color/white"/></shape></item>
<item android:drawable="@drawable/my_drawable" android:gravity="center" android:bottom="100dp"
android:width="100dp" android:height="100dp" />
<item android:drawable="@drawable/drawable_text" android:gravity="center" android:top="50dp"
android:width="200dp" android:height="200dp" />
</layer-list>
Однако android:width
и android:height
inside <item>
работает только для уровней API от 23 и выше. Без явных значений ширины и высоты рисованные объекты будут переполнять экран, и если я использую изображения PNG с измененным размером, качество ухудшается.
Я искал обходные пути в Stackoverflow ( здесь , здесь и здесь ) но ни одно из решений, похоже, не работает.
- Добавление
android:top
, android:bottom
, android:left
и android:right
не изменяйте размер / не устанавливайте высоту и ширину drawable
, возможно потому, что они являются изображениями в формате PNG, а не векторными объектами. - Добавление
drawable
к shape
(а затем используйте size
tag) не работает.