Android Создание гибкого XML, состоящего из нескольких растровых изображений

У меня есть этот фон для нескольких LinearLayout s в моем приложении:

 android:background="@drawable/metal_plate" 

рисуем \ metal_plate.xml:

 <bitmap xmlns:android="http://schemas.android.com/apk/res/android" android:src="@drawable/diamond_metal" android:tileMode="repeat" android:dither="true"> </bitmap> 

Я хотел бы разместить 4 растровых изображения винтов в 4 углах металлической пластины.
Я использую металлическую пластину в нескольких местах, поэтому я предпочитаю определять ее как одну вытягиваемую, чем устанавливать 4 винта на каждое отверстие с помощью RelativeLayout .

Можно ли определить XML в выдвижной папке, чтобы объединить плиточную металлическую пластину и 4 винта?

К сожалению, я не могу проверить это прямо сейчас, но я считаю, что вы можете сделать это с помощью LayerListDrawable следующим образом:

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <bitmap android:src="@drawable/diamond_metal" android:tileMode="repeat" /> </item> <item android:right="10dp" android:bottom="10dp"> <bitmap android:src="@drawable/screw" android:gravity="bottom|right" /> </item> <item android:left="10dp" android:bottom="10dp"> <bitmap android:src="@drawable/screw" android:gravity="bottom|left" /> </item> <item android:top="10dp" android:left="10dp"> <bitmap android:src="@drawable/screw" android:gravity="top|left" /> </item> <item android:top="10dp" android:right="10dp"> <bitmap android:src="@drawable/screw" android:gravity="top|right" /> </item> </layer-list> 

Замените значения 10dp любой вставкой, необходимой для винтов.

Это, вероятно, можно легко сделать с помощью NinePatch . Вы можете создать NinePatch drawable, а затем просто установить его как фон любых макетов, которые вы хотите иметь в фоновом режиме. Это просто требует, чтобы вы создали квадратную версию фона, тогда я бы рекомендовал использовать инструмент Draw 9-Patch , чтобы превратить его в .9.png для Android.