可以在android按钮中指定边框吗?

Nyx*_*Nyx 6 android button

是否可以在main.xml中的Android按钮中指定边框?[ps没有包含笔划标记的'单独的xml文件'但是在我定义按钮的原始文件中,也没有'动态编程'解决方案和'图像'解决方案]

  <Button
    android:background="#FFFFFF"
    android:layout_width="0dp"
    android:layout_height="fill_parent"
    android:text="Player 3"
    android:layout_x="0px"
    android:layout_y="0px"
    android:id="@+id/p3"
    android:layout_weight="1" 

/>  
Run Code Online (Sandbox Code Playgroud)

我在这里动态地改变背景,但问题是,2个按钮没有边框.

Gun*_*lan 35

尝试使用形状

my_shape.xml

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

    <corners
        android:bottomLeftRadius="7dp"
        android:bottomRightRadius="7dp"
        android:radius="0.1dp"
        android:topLeftRadius="7dp"
        android:topRightRadius="7dp" />

    <solid android:color="#FFFFFF" />

    <stroke
        android:width="1dp"
        android:color="#E8E6E7" />

</shape>
Run Code Online (Sandbox Code Playgroud)

和按钮

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_shape"
    android:text="Button" />
Run Code Online (Sandbox Code Playgroud)

截图

在此输入图像描述

我希望这能帮到您.


ata*_*ulm 7

这不是推荐的方法,因为它会导致过度绘制并添加不必要的视图,Gunaseelan有正确的方法.


没有边界作为属性的概念.可接受的方法是使用单独的drawable作为背景View(使用stroke正如你所提到的和@gunaseelan写的).

其他(不推荐)的方法是附上您Button在另一个ViewLinearLayout,设置背景色,以在封装所需的边框颜色View和填充在外View了.

<LinearLayout
    android:layout_height="wrap_content"
    android:layout_width="match_parent"
    android:background="#342334"
    android:padding="5dp"
    >
    <Button
        android:layout_height="wrap_content"
        android:layout_width="match_parent"
        android:text="whatwhaaat"
        />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

填充的值将指示边框的粗细.不推荐使用这种方法,你有一个额外的最终View的布局,并透支的另一层(它绘制LinearLayout然后Button在上面).