2011-09-01 10 views
14

我有以下的繪製設置爲背景:機器人,背景,層列表和可擴展的位圖項目

<?xml version="1.0" encoding="utf-8"?> 
<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<item> 
    <bitmap android:src="@drawable/base_bg" 
    android:gravity="bottom" /> 
</item> 
<item android:top="10dp" android:left="10dp"> 
    <bitmap android:src="@drawable/decoration1" 
    android:gravity="top|right" 
    android:width="25dp" 
    android:height="25dp" /> 
</item> 
<item android:top="10dp" android:left="10dp"> 
    <bitmap android:src="@drawable/decoration2" 
    android:gravity="top|right" 
    android:width="25dp" 
    android:height="25dp" 
    /> 
</item> 
</layer-list> 

它會顯示所有的位圖(base_bgdecoration1decoration2),但我無法找到一種修改它們大小的方法。我想要有主要的背景,並根據dpi的不同大小的裝飾。有沒有一個簡單的方法來做到這一點,或者我真的不得不爲一個不同的dpi的「裝飾品」?這是不好的,我想有規模/調整大小選項!

android:widthandroid:height屬性是我想找的東西,但我知道它不起作用。目前我爲不同的DPI使用不同的版本,但希望它可以更方便用戶使用。

+0

可能你應該考慮一個框架佈局,而不是:然後你可以離散地修改每個視圖。 – RichieHH

回答

9

我不知道這些圖像如何,但是,例如,您可以製作一個大圖像,並在項目android:drawable字段中使用它,這樣圖像將獲取該項目的大小。

<layer-list 
xmlns:android="http://schemas.android.com/apk/res/android"> 

<item> 
    <bitmap android:src="@drawable/base_bg" 
    android:gravity="bottom" /> 
</item> 
<item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration1"> 
</item> 
<item android:top="10dp" android:left="10dp" android:drawable="@drawable/decoration2"> 
</item> 
</layer-list> 

其他的解決方案可能是與LayerDrawable(here)和繪製對象(here)班做編程。您可以使用3個可繪製對象構建圖層對象,然後使用方法setBounds(Rect)在每個可繪製對象上選擇正確的大小。

我希望它能幫助你。

+0

layers [1] .setBounds(4,4,4,4); < - 不起作用 - .- –