Android:如何阻止自定义按钮占用TableLayout中的所有可用单元格空间?

时间:2012-01-27 14:17:38

标签: android android-layout android-widget custom-widgets

我设计了彩色的Android Button Drawable并将它们放在TableLayout中。问题是Android的默认按钮不会占用整个单元格空间,但是我的drawables会占用(参见附图)。如何调整我的XML以使我的drawable像默认按钮一样留下一些空间?我在底部粘贴了XML代码。

自定义按钮:

Custom buttons taking all available cell space

默认按钮:

Default buttons leave gaps

XML CODE:

<?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 个答案:

答案 0 :(得分:1)

您是否尝试使用项目的Top,Left,Bottom和Right属性?请参阅:How to add padding to gradient <shape> in Android?

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