Android自定义按钮边距

时间:2010-12-02 12:21:03

标签: android android-layout

我有自定义按钮布局

<?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:startColor="@color/pres1"
                android:endColor="@color/pres2" android:angle="270" />
            <stroke android:width="5dp" android:color="@color/stro3" />
            <corners android:radius="5dp" />
            <padding android:left="10dp" android:top="20dp"
                android:right="10dp" android:bottom="20dp" />
        </shape>
    </item>
    <item android:state_focused="true">
        <shape>
            <gradient android:endColor="@color/focu1"
                android:startColor="@color/focu2" android:angle="270" />
            <stroke android:width="5dp" android:color="@color/stro2" />
            <corners android:radius="5dp" />
            <padding android:left="10dp" android:top="20dp"
                android:right="10dp" android:bottom="20dp" />
        </shape>
    </item>
    <item>
        <shape>
            <gradient android:endColor="@color/norm1"
                android:startColor="@color/norm2" android:angle="270" />
            <corners android:radius="5dp" />
            <padding android:left="10dp" android:top="20dp"
                android:right="10dp" android:bottom="20dp" />
        </shape>
    </item>

</selector>

以下列出

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical" android:layout_width="fill_parent"
    android:layout_height="fill_parent" android:background="@color/all_white">

    <TextView android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="@string/hello"
        android:textColor="@color/all_red" />

    <Button android:id="@+id/mq_categories" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="Browse Quiz Categories"
        android:background="@drawable/custom_button" />
    <Button android:id="@+id/mq_random" android:layout_width="fill_parent"
        android:layout_height="wrap_content" android:text="Enter Random Quiz"
        android:background="@drawable/custom_button" />

</LinearLayout>

生成以下输出

alt text

我需要在按钮之间添加一些余量,任何帮助表示赞赏..

3 个答案:

答案 0 :(得分:30)

就这样做吧

<Button android:id="@+id/mq_categories"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="Browse Quiz Categories"
    android:background="@drawable/custom_button"
    android:layout_marginBottom="5dp"/>

这样,您可以在第一个按钮的底部设置5个密度独立像素的边距。

答案 1 :(得分:1)

而不是使用LinearLayout使用RelativeLayout,以便可以尽可能地设置边距。干杯

答案 2 :(得分:1)

我遇到了同样的问题,解决方案似乎没有出现。在尝试了几件事之后,为我做了诀窍,

  1. 定义自定义按钮布局,如问题
  2. 中所述
  3. 在res&gt;值&gt; styles.xml文件中,添加新样式,如下所示,

    <style name="Widget.Button_Custom" parent="android:Widget">
        <item name="android:layout_margin">5dp</item>
        <item name="android:background">@drawable/button_custom</item>
    </style>
    
  4. 使用布局中的样式

  5. <?xml version="1.0" encoding="utf-8"?> 
    <Button android:id="@+id/mq_categories" 
            android:layout_width="fill_parent"
            android:layout_height="wrap_content" android:text="
            android:background="@drawable/custom_button" 
            style="@style/Widget.Button_Custom"
    />
    

    应该这样做。除了margin之外,您还可以在样式标记中定义许多其他属性。希望有所帮助!