2012-01-27 49 views
0

我设计了彩色的Android Button Drawables并将它们放在TableLayout中。问题在于Android的默认按钮并不占用整个单元格空间,但我的drawable可以(请参阅attatched图片)。我该如何调整我的XML,以便我的drawable像默认按钮一样留下一点空间?我在底部粘贴了XML代码。Android:如何阻止自定义按钮占用TableLayout中的所有可用单元格空间?

自定义按钮:

Custom buttons taking all available cell space

默认按钮:

Default buttons leave gaps

XML代码:

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

    <item android:state_pressed="true"><shape> 
      <gradient android:angle="90" android:endColor="@color/dark_red" android:startColor="@color/brick_red" /> 

      <corners android:radius="10dip" /> 

      <padding android:bottom="10dip" android:left="10dip" android:right="10dip" android:top="10dip"></padding> 

     </shape></item> 
    <item android:state_focused="true"><shape> 
      <gradient android:angle="270" android:endColor="@color/dark_red" android:startColor="@color/brick_red" /> 

      <corners android:radius="10dip" /> 

      <padding android:bottom="10dip" android:left="10dip" android:right="10dip" android:top="10dip" /> 
     </shape></item> 
    <item><shape> 
      <gradient android:angle="270" android:endColor="@color/dark_red" android:startColor="@color/red" /> 

      <corners android:radius="10dip" /> 

      <padding android:bottom="5dip" android:left="5dip" android:right="5dip" android:top="5dip" /> 
     </shape></item> 

</selector> 

感谢您的帮助:)

+1

也许你可以尝试填充从选择移动到实际的意见? – 2012-01-27 14:28:16

+0

这会更有意义!之前应该做到这一点。 – 2012-01-27 14:37:47

回答

1

你尝试使用上,左,项下和右属性?请参阅:How to add padding to gradient <shape> in Android?

另外,在使用该按钮您最终的布局,你可以使用属性:android:layout_margin(Right,Left,Top,Bottom)

+0

layout_margin做了诀窍。是否可以在按钮的XML本身中设置按钮的边距?我查看了可用设置的intellisense列表,但无法找到它。 – 2012-01-27 14:36:52

+0

如果你在考虑选择器xml,你将不得不尝试在你的选择器xml的items标记中使用android:top,android:left,android:bottom和android:right。或者为了使它更清洁,但是为了创建一个新文件,创建一个button_with_padding.xml,只添加一个引用已经作为drawable的xml的项目,并在那里设置顶部,左侧,右侧,底部值。 – Yahel 2012-01-27 16:50:09

相关问题