按键间距(Buttons spacing)

2019-11-01 06:13发布

我想设置的按钮0保证金,(所以按键之间没有间隔)。

基本上,我想我的按钮看起来类似的东西(用下面的样式和颜色):

任何想法我怎么能完成这样的任务? 我不希望由我自己创造一个9修补图像(因为我没有任何知识,这样做)。

Answer 1:

在这种特殊情况下,你可以很容易地个XML做这个任务。 这是你如何可以分两步实现它:

第1步

在创建文件夹绘制形状3:

  • 第一形状是左键:shape_button_left.xml。 这种形状具有径向左侧角部和梯度的背景。

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="1dp" android:color="#BFBFBF" > </stroke> <corners android:bottomLeftRadius="10dp" android:topLeftRadius="10dp" > </corners> <gradient android:startColor="#D2D2D2" android:endColor="#F2F2F2" android:angle="90"/> </shape> 
  • 第二形状为中心按钮:shape_button_center.xml。 这种形状没有定义任何角落,也有渐变背景。

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="1dp" android:color="#BFBFBF" > </stroke> <gradient android:startColor="#D2D2D2" android:endColor="#F2F2F2" android:angle="90"/> </shape> 
  • 第三形状是右边的按钮:shape_button_right.xml。 这种形状具有径向右角和梯度的背景。

     <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="1dp" android:color="#BFBFBF" > </stroke> <corners android:bottomRightRadius="10dp" android:topRightRadius="10dp" > </corners> <gradient android:startColor="#D2D2D2" android:endColor="#F2F2F2" android:angle="90"/> </shape> 

第2步

现在,我们可以用简单的观点,这些形状来获得按钮的作用。 在您的布局XML添加下面的代码:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center" >

    <!-- Button Left -->

    <LinearLayout
        android:id="@+id/button_left"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="@drawable/shape_button_left"
        android:gravity="center"
        android:padding="10dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Left"
            android:textColor="#333333"
            android:textSize="20sp" />
    </LinearLayout>
    <!-- End Button Left -->


    <!-- Button Center -->

    <LinearLayout
        android:id="@+id/button_center"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="@drawable/shape_button_center"
        android:gravity="center"
        android:padding="10dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Center"
            android:textColor="#333333"
            android:textSize="20sp" />
    </LinearLayout>
    <!-- End Button Center -->


    <!-- Button Right -->

    <LinearLayout
        android:id="@+id/button_right"
        android:layout_width="100dp"
        android:layout_height="wrap_content"
        android:background="@drawable/shape_button_right"
        android:gravity="center"
        android:padding="10dp" >

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Right"
            android:textColor="#333333"
            android:textSize="20sp" />
    </LinearLayout>
    <!-- End Button Right -->

</LinearLayout>

这是它的现在,你可以在你的代码添加的onClick监听器LinearLayouts与它就像一个按钮的工作。


测试我的手机验证码给下一个结果:



Answer 2:

任何想法我怎么能完成这样的任务? 我不希望由我自己创造一个9修补图像(因为我没有任何知识,这样做)。

我怕你可能没有太多的选择。 每个按钮之间发现的固有间距为直接内置到该框架使用现有9-补丁背景额外透明像素的结果。 要更换此问题,您必须设置按钮,以不同的背景Drawable不包括这种固有的间距。

另一种选择是你可能在代码中要做的就是创建XML绘制形状用于每个背景。 您可以创建具有圆角半径,填充渐变的个体形状和中风就像图像。 你可以阅读更多有关创建的XML文档可绘制 。



文章来源: Buttons spacing