У меня проблема с установкой размера drawable в списке слоев. Мой XML выглядит так:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menu_drawable1"/>
<item android:drawable="@drawable/menu_drawable2"/>
</layer-list>
Drawable1 больше Drawable2, поэтому размер Drawable2 изменяется. Как отменить это и установить исходный размер Drawable2? Я не хочу, чтобы он менял размер. Я попытался установить ширину и высоту, но это не сработало. Кроме того, чертежи на самом деле не являются растровыми изображениями, они являются выделенными, поэтому я не могу использовать трюк с растровыми изображениями.
Похоже, что я получил половину решения, используя "left" и "right", но все же это не позволяет мне автоматически устанавливать точный размер изображения. Теперь мой xml выглядит так:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menu_drawable1"/>
<item android:drawable="@drawable/menu_drawable2" android:right="150dp"/>
</layer-list>
Для этого вы можете использовать встроенный тег. Например,
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menu_drawable1"/>
<item>
<inset android:drawable="@drawable/menu_drawable2"
android:insetRight="50dp"
android:insetTop="50dp"
android:insetLeft="50dp"
android:insetBottom="50dp" />
</item>
Это создаст отступы вокруг вас menu_drawable2, поэтому он не будет масштабироваться. Просто установите необходимые размеры.
Я не знаю его работ или нет, но вы пытались отделить их друг от друга?
что-то вроде этого:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/menu_drawable1"/>
</layer-list>
<layer-list>
<item android:drawable="@drawable/menu_drawable2"/>
</layer-list>
или поместить что-то еще между ними, как пустой макет с высота и ширина 0дп.