2012-09-22 33 views
0

我想創建一個複雜的xml drawable來表示一個列表框,將其設置爲TextView的背景。使用XML繪製創建列表框背景

下面是我想要獲得的東西和我得到的東西的截圖。

listbox screenshot

正如你可以看到我想要把我的箭頭右側的漸變灰框。

看看android文檔,似乎xml形狀支持大小標記,這裏報告http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape,但我無法使它工作!

在這裏有我的XML

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

    <item> 
    <shape android:shape="rectangle"> 
     <stroke android:width="1dp" android:color="#999999" /> 
     <corners android:radius="5dp" /> 
     <solid android:color="#ffffff" /> 
    </shape> 
    </item> 

    <item> 
     <shape android:shape="rectangle"> 
     <stroke android:width="1dp" android:color="#999999" /> 
     <corners android:topRightRadius="5dp" android:bottomRightRadius="5dp" /> 
     <gradient android:startColor="#606060" android:endColor="#303030" android:angle="270" /> 
     <padding android:top="7dp" android:bottom="7dp" android:right="7dp" /> 
     </shape> 
    </item> 

    <item> 
    <bitmap android:src="@drawable/listbox_arrow_icon" android:gravity="right|fill_vertical" android:tileMode="disabled" /> 
    </item> 

</layer-list> 

我試圖指定的android:形狀標籤寬度,因爲這裏指定http://developer.android.com/reference/android/graphics/drawable/ShapeDrawable.html#attr_android:width,但它並沒有工作過。

我不想用代碼去做,但如果它是不可避免的,最後我想我會在TextView的這個地方構建一個組件。

感謝您的幫助!

@EDIT 對不起,複製期間&粘貼我刪除了第一個形狀的固體標籤!固定!

+0

用'Android的嘗試:顏色=「#FFFFFF」'代替#999999 –

+0

我忘記了堅實的XML標籤粘貼在第一形狀,然而問題是不是bg顏色,但關於盒子的寬度! 指定第二個形狀的寬度,即繪製箭頭背景的寬度,不起作用,正如我寫的,我嘗試使用第二個形狀,但它不起作用。 –

回答

0

試試這個:

<item><shape> 
     <solid android:color="#fff" /> 

     <stroke android:width="1px" android:color="#10000000" /> 

     <corners android:radius="6dp" /> 

     <gradient android:angle="270" android:endColor="#10000000" android:startColor="#10FFFFFF" /> 
    </shape></item>