我尝试使用两种颜色白色和黑色为Button
创建边框。所以我决定创造一个形状。我试图添加白色和黑色渐变,我的代码不起作用
我想要这样的边框:
我的xml:
<?xml version="1.0" encoding="UTF-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape android:shape="rectangle" >
<gradient
android:angle="360"
android:centerColor="#000000"
android:endColor="#bfbfbf"
android:gradientRadius="360"
android:startColor="#ffffff"
android:type="sweep" />
<stroke
android:width="2dp"
android:color="#ffffff" />
</shape>
</item>
<item
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp">
<shape android:shape="rectangle" >
<solid android:color="#d2d2d2" />
</shape>
</item>
</layer-list>
和buttn:
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="OK"
android:background="@drawable/border"
android:layout_alignBottom="@+id/progress"
android:layout_centerHorizontal="true"
android:id="@+id/okbtn" />
答案 0 :(得分:1)
这似乎是使用9-patch image的好地方。任何基于常规.png
文件,<shape>
或<vector>
的解决方案都会缩小按钮的白色和黑色边框。
创建button.9.png
文件后,您可以使用android:background="@drawable/button"
将其设置为按钮的背景。
这是基于您链接的.png
文件的9补丁:
答案 1 :(得分:1)
button_background.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<stroke
android:width="@dimen/stroke_width_outer"
android:color="#000" />
</shape>
</item>
<item
android:bottom="@dimen/stroke_width_outer"
android:right="@dimen/stroke_width_outer">
<shape android:shape="rectangle">
<stroke
android:width="@dimen/stroke_width_outer"
android:color="#FFF" />
</shape>
</item>
<item
android:bottom="@dimen/stroke_width_outer"
android:left="@dimen/stroke_width_outer"
android:right="@dimen/stroke_width_outer"
android:top="@dimen/stroke_width_outer">
<shape android:shape="rectangle">
<stroke
android:width="@dimen/stroke_width_outer"
android:color="#7F7F7F" />
</shape>
</item>
<item
android:bottom="@dimen/stroke_width_inner"
android:left="@dimen/stroke_width_outer"
android:right="@dimen/stroke_width_inner"
android:top="@dimen/stroke_width_outer">
<shape android:shape="rectangle">
<stroke
android:width="@dimen/stroke_width_outer"
android:color="#DFDFDF" />
</shape>
</item>
<item
android:bottom="@dimen/stroke_width_inner"
android:left="@dimen/stroke_width_inner"
android:right="@dimen/stroke_width_inner"
android:top="@dimen/stroke_width_inner">
<shape android:shape="rectangle">
<solid android:color="#BFBFBF" />
</shape>
</item>
</layer-list>
值/ dimen.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
<dimen name="stroke_width_outer">3dp</dimen>
<dimen name="stroke_width_inner">6dp</dimen>
</resources>
stroke_width_inner应该是stroke_width_outer的两倍
将背景应用于按钮 -
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/button_background"
android:text="OK"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
在布局编辑器上 -
在设备上 -
在设备上,您在布局编辑器中看不到灰色的左边和上边框
答案 2 :(得分:0)
请在此处查看有关创建可绘制形状http://developer.android.com/guide/topics/resources/drawable-resource.html#Shape
的信息完成此操作后,在按钮组的XML中设置android:background="@drawable/your_button_border"