2013-03-07 16 views
6

mam to tło dla kilku LinearLayout s całym moim app:Android Making rozciągliwej XML składa się z kilku bitmap

android:background="@drawable/metal_plate" 

odkształcalne \ 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>  

Chciałbym Place 4 mapy bitowe śrub w 4 rogach metalowej płyty.
Używam metalowej płytki w kilku miejscach, więc wolę definiować ją jako pojedynczą ciągniętę niż konieczność umieszczania 4 śrub za każdym razem przy pomocy RelativeLayout.

Czy można zdefiniować kod XML w folderze do rysowania, aby połączyć kafelkową blachę i 4 śruby?

Odpowiedz

23

Niestety nie mogę przetestować to teraz, ale wierzę, że można to zdjąć z LayerListDrawable tak:

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

Wymiana wartości 10dp wstawka ze cokolwiek jest potrzebne do śrub.

+1

Działa jak urok! – ilomambo

1

Można to łatwo zrobić za pomocą NinePatch. Możesz utworzyć losowanie NinePatch, a następnie ustawić go jako tło wszystkich układów, które chcesz mieć w tle. Wymaga to jedynie utworzenia kwadratowej wersji tła, a następnie polecam użycie narzędzia Draw 9-Patch, aby zrobić to z .9.png dla Androida.

+2

To jest kafelkowa bitmapa, więc 9-plasterka nie działałaby tutaj. – kcoppock

Powiązane problemy