2013-03-07 29 views
6

我有我的整個應用此背景幾個LinearLayout S的組成的繪製XML:的Android製作幾個位圖

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金屬板四角的螺絲位圖。
我在幾個地方使用金屬板,所以我更喜歡把它定義爲一個可繪製的,而不是必須在每個Ocasion上放置4個螺絲,使用RelativeLayout

是否可以在可繪製文件夾中定義一個XML來組合拼接金屬板和4個螺絲?

回答

23

不幸的是我真的不能現在測試這個權利,但我相信你可以用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值。

+1

工程就像一個魅力! – ilomambo 2013-03-08 06:26:51

1

這可能很容易使用NinePatch完成。您可以創建一個NinePatch drawable,然後將其設置爲任何您想要背景的Layouts的背景。這隻需要你創建一個正方形版本的背景,然後我會推薦使用Draw 9-Patch工具將它變成一個.9.png供Android使用。

+2

這是一個平鋪的位圖,所以9補丁在這裏不起作用。 – kcoppock 2013-03-07 18:50:33