是否可以在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个按钮没有边框。
答案 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" />
截图
我希望这会对你有所帮助。
答案 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)
<?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