我已经构建了一个混合应用程序,其中包含以下按钮,用于twitter和facebook:
我正在尝试重新制作Android中的两个按钮,但我总是在两者之间存在差距,我总是不得不把dp搞得一团糟。
是否有一种很好的方法可以像在图片中那样在Android中制作按钮?
只需要一些建议。
谢谢
答案 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>
在这两个相对布局中你可以放置任何你想要的东西,然后在它们上点击监听器