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

时间:2013-07-10 07:33:40

标签: android button

是否可以在main.xml中的Android按钮中指定边框? [附注: 没有'包含笔划标记的单独的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" 

/>  

这里我正在动态更改背景但问题是,对于2个按钮没有边框。

3 个答案:

答案 0 :(得分: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>

和按钮

<Button
    android:id="@+id/button1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@drawable/my_shape"
    android:text="Button" />

截图

enter image description here

我希望这会对你有所帮助。

答案 1 :(得分:7)

这不是推荐的方法,因为它会导致overdraw并添加不必要的观看次数Gunaseelan has the proper method


没有边界作为属性的概念。接受的方法是使用单独的drawable作为View的背景(正如您所提到的那样使用stroke并且@gunaseelan写道)。

另一种(不推荐)方式是将您的Button封装在另一个View中,如LinearLayout,将背景颜色设置为封装{{1}上所需的边框颜色和外部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> ,而另一层的透支会在上面绘制View,然后是LinearLayout

答案 2 :(得分:0)

enter image description here

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

<gradient
    android:angle="270"
    android:endColor="#E8f2fe"
    android:startColor="E8f2fe" />

<corners android:radius="3dp" />

<stroke
    android:width="2px"
    android:color="#486e9d" />

了解更多信息http://androiddhina.blogspot.in/2015/09/border-color-on-android-button.html