Как установить ширину и высоту рисования (PNG) в списке слоев для уровня API ниже 23? - PullRequest
0 голосов
/ 20 марта 2020

Следующий код 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 ( здесь , здесь и здесь ) но ни одно из решений, похоже, не работает.

  1. Добавление android:top, android:bottom, android:left и android:right не изменяйте размер / не устанавливайте высоту и ширину drawable, возможно потому, что они являются изображениями в формате PNG, а не векторными объектами.
  2. Добавление drawable к shape (а затем используйте size tag) не работает.

1 Ответ

0 голосов
/ 20 марта 2020

Нет способа достичь своей цели. Вы должны изменить размер своего изображения. Или вы можете использовать android:width и android:height для уровня API> = 23 и layer-list с измененным размером для уровня API <23. </p>

Также вы не можете использовать android:top, android:bottom et c. свойства для изменения размера любых изображений (не png и не векторное рисование), эти свойства используются для позиционирования.

...