2011-09-02 48 views
0

我想做一個背部背景圖像的按鈕。再次,我想用選擇器xml應用一些狀態樣式。 我已經將下面的這個xml用作樣式,另一個用作選擇器。但背景圖片沒有顯示出來。我也想申請一些角落radious到按鈕按鈕與背景圖像和角radious在android

請幫助。

<style name="HomeMenuButton" parent="@android:style/Widget.Button"> 
    <item name="android:gravity">center_vertical|center_horizontal</item> 
    <item name="android:textColor">#FFFFFFFF</item> 
    <item name="android:shadowColor">#FF000000</item> 
    <item name="android:shadowDx">0</item> 
    <item name="android:shadowDy">-1</item> 
    <item name="android:shadowRadius">5</item> 
    <item name="android:textSize">16dip</item> 
    <item name="android:textStyle">bold</item> 
    <item name="android:background">@drawable/button_back</item> 
    <item name="android:focusable">true</item> 
    <item name="android:clickable">true</item> 
</style> 


<?xml version="1.0" encoding="utf-8"?> 
<selector xmlns:android="http://schemas.android.com/apk/res/android"> 
    <item > 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <stroke android:width="2dp" android:color="@color/red" /> 
      <solid android:color="#FFFFFFFF"/> 
      <padding android:left="5dp" android:top="2dp" 
       android:right="5dp" android:bottom="2dp" /> 
      <corners android:radius="15dp" /> 

     </shape> 
    </item> 
    <item android:state_pressed="true" >   
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <stroke android:width="2dp" android:color="@color/red" /> 
      <solid android:color="@color/blue"/> 
      <padding android:left="5dp" android:top="2dp" 
       android:right="5dp" android:bottom="2dp" /> 
      <corners android:radius="15dp" /> 

     </shape>  
    </item> 
</selector> 

回答

0

我剛剛試過你的代碼,它顯示了你想要的背景。

您是否在您的layout xml中添加了android:style屬性?類似這樣的:

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Hello world!" 
    style="@style/HomeMenuButton" 
/> 

此外,您的原始狀態drawable不顯示按下狀態。通過將按下的狀態項移動到正常狀態之前,您可能需要稍微改變它。

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

    <item android:state_pressed="true" >   
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <stroke android:width="2dp" android:color="@color/red" /> 
      <solid android:color="@color/blue"/> 
      <padding android:left="5dp" android:top="2dp" 
       android:right="5dp" android:bottom="2dp" /> 
      <corners android:radius="15dp" /> 
     </shape>  
    </item> 

    <item> 
     <shape xmlns:android="http://schemas.android.com/apk/res/android"> 
      <stroke android:width="2dp" android:color="@color/red" /> 
      <solid android:color="#FFFFFFFF"/> 
      <padding android:left="5dp" android:top="2dp" 
       android:right="5dp" android:bottom="2dp" /> 
      <corners android:radius="15dp" /> 
     </shape> 
    </item> 

</selector> 
+0

感謝您的回覆。但按鈕是否顯示半徑?我也想要一個圓角的按鈕。 –

+1

是按鈕顯示的半徑與圖片中一樣(底部按鈕) http://imageshack.us/photo/my-images/825/ss01x.png/ – basicsharp

+0

您是否嘗試過將圖片作爲背景進行投放?你顯示的樣本似乎沒有圖像。你可以再試一次嗎? –