2013-05-10 175 views
2

我正在尝试使自定义按钮没有填充。为了这个目的,我创建以下选择:将自定义按钮应用到自定义按钮

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

    <item android:state_pressed="true" > 
     <shape> 
      <solid 
       android:color="#33b5e5"/> 
      <corners 
       android:radius="1dp" /> 
      <padding 
       android:left="0dp" 
       android:top="0dp" 
       android:right="0dp" 
       android:bottom="0dp" /> 
     </shape> 
    </item> 

    <item android:state_focused="true" > 
     <shape> 
      <solid 
       android:color="#cccccc"/> 
      <corners 
       android:radius="1dp" /> 
      <padding 
       android:left="0dp" 
       android:top="0dp" 
       android:right="0dp" 
       android:bottom="0dp" /> 
     </shape> 
    </item> 

    <item>   
     <shape> 
      <solid 
       android:color="#cccccc"/> 
      <corners 
       android:radius="1dp" /> 
      <padding 
       android:left="0dp" 
       android:top="0dp" 
       android:right="0dp" 
       android:bottom="0dp" /> 
     </shape> 
    </item> 
</selector> 

我定义我的按钮在XML文件:

<Button 
     android:text="Some text" 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:background="@drawable/button_selector" 
     android:textSize="45sp" 

     android:paddingBottom="0dp" 
     android:paddingTop="0dp" 
     android:layout_margin="3dip"/> 

但总是有填充顶部和按钮的底部。我已经搜索过,发现了一些答案,但没有帮助我。可能是什么问题呢?

回答

3

设置边距是否有助于您的情况?试试这个:

 android:layout_marginTop="-3dip" 
    android:layout_marginBottom="-3dip" 
+0

这很有用。我尝试了负值填充值,但忘记测试负值余量。我试图用编程方式制作按钮,但没有运气。你可能有一个想法如何解决这个问题? – sinisha 2013-05-10 14:14:54

+1

@sinisha,如果你真的想摆脱它,创建你自己的[9-patch](http://developer.android.com/tools/help/draw9patch.html) – 2013-05-10 14:24:10

+0

@sinisha,请参阅[如何设置layout_margin以编程方式?](http://stackoverflow.com/a/5788570/1693859)。它可能有帮助。 – 2013-05-10 18:47:48