应该使用android中的哪个布局来实现以下按钮?

时间:2016-03-01 23:05:14

标签: android facebook button

我已经构建了一个混合应用程序,其中包含以下按钮,用于twitter和facebook:

enter image description here

我正在尝试重新制作Android中的两个按钮,但我总是在两者之间存在差距,我总是不得不把dp搞得一团糟。

是否有一种很好的方法可以像在图片中那样在Android中制作按钮?

只需要一些建议。

谢谢

2 个答案:

答案 0 :(得分:1)

一种可能的解决方案是使用TextView而不是Button,将背景设置为XML选择器(如果这是您想要的,您可以在一侧创建一个只有圆角的矩形)。在文本视图上将边距设置为零,以便它们触摸。

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal">

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/your_drawable_here"
        android:clickable="true"
        android:gravity="center"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        android:text="Left button" />

    <TextView
        android:layout_width="0dp"
        android:layout_height="wrap_content"
        android:layout_weight="1"
        android:background="@drawable/your_drawable_here"
        android:clickable="true"
        android:gravity="center"
        android:paddingBottom="8dp"
        android:paddingTop="8dp"
        android:text="Right button" />

</LinearLayout>

答案 1 :(得分:1)

这是背景可绘制的

     <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#fff"/>

    <corners
        android:bottomLeftRadius="3dp"
        android:bottomRightRadius="3dp"
        android:topLeftRadius="3dp"
        android:topRightRadius="3dp"/>

    </shape>

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#199fd4"/>

    <corners
        android:bottomRightRadius="3dp"
        android:topRightRadius="3dp"/>

</shape>

    <?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <solid android:color="#1f19d4"/>

    <corners
        android:bottomLeftRadius="3dp"
        android:bottomRightRadius="0dp"
        android:topLeftRadius="3dp"
        android:topRightRadius="0dp"/>

</shape>

然后您需要创建线性布局并将其中的两个按钮放置在其中,每个按钮可以使用权重属性设置为50%

布局代码

 <LinearLayout
    android:layout_width="match_parent"
    android:layout_height="40dp"
    android:layout_marginEnd="20dp"
    android:layout_marginStart="20dp"
    android:background="@drawable/roundedallsides_white"
    android:weightSum="2">

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@drawable/rounded_left"></RelativeLayout>

    <RelativeLayout
        android:layout_width="0dp"
        android:layout_height="match_parent"
        android:layout_weight="1"
        android:background="@drawable/rounded_right"></RelativeLayout>
</LinearLayout>

在这两个相对布局中你可以放置任何你想要的东西,然后在它们上点击监听器