2013-03-07 20 views
6

ho questo sfondo per diversi LinearLayout s in tutta la mia app:Android Fare un XML disegnabile composto da diverse immagini bitmap

android:background="@drawable/metal_plate" 

drawable \ 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>  

Vorrei Place 4 bitmap di viti nei 4 angoli della piastra metallica.
Io uso la piastra metallica in diversi punti, quindi preferisco definirla come un singolo drawable che dover posizionare le 4 viti su ogni ocasion con un RelativeLayout.

È possibile definire un XML nella cartella estraibile per combinare la piastra metallica piastrellata e le 4 viti?

risposta

23

Purtroppo non posso davvero testare questo momento, ma credo che si può tirare fuori questo con un LayerListDrawable come questo:

<?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> 

Sostituzione dei valori 10dp con qualsiasi inserto è necessario per le viti.

+1

Funziona come un fascino! – ilomambo

1

Questo potrebbe probabilmente essere fatto facilmente utilizzando uno NinePatch. È possibile creare un drawable NinePatch e impostarlo come sfondo di qualsiasi layout su cui si desidera avere lo sfondo. Questo richiede solo che tu crei una versione quadrata dello sfondo, quindi ti consiglio di utilizzare lo strumento Draw 9-Patch per trasformarlo in un .9.png per Android da utilizzare.

+2

È una bitmap piastrellata, quindi una 9-patch non funzionerebbe qui. – kcoppock

Problemi correlati