2011-09-02 23 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

您是否尝试过将图片作为背景进行投放?你显示的样本似乎没有图像。你可以再试一次吗? –