方形的布局与圆内边缘的边界

我正在尝试创build一个外部四边形的angular落的布局边框。 我已经收集到,我需要创build一个由两个形状组成的xml可绘制定义:一个是笔触宽度和圆angular半径,另一个是笔触宽度:

可绘制/

round_border.xml

<shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="4dp" android:color="#FF000000" /> <padding android:left="7dp" android:top="7dp" android:right="7dp" android:bottom="7dp" /> <corners android:radius="4dp" /> <solid android:color="#FFC0C0C0" /> </shape> 

square_border.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="#FF000000" /> <solid android:color="#FFC0C0C0" /> </shape> 

这些工作中的每一个独立地作为一个边界当它们自己被应用象这样:

android:background =“@ drawable / round_border”但是当他们或者两者都被添加到可绘制的项目列表像这样:

composite_border.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list> <item android:drawable="@drawable/round_border"/> <!-- <item android:drawable="@drawable/square_border"/> --> </layer-list> </shape> 

和:

机器人:背景= “@绘制/ composite_border”

布局的背景是完全黑色,而不是只是一个黑色的边框 – 任何人都知道如何使图层列表工作这个任务?

Solutions Collecting From Web of "方形的布局与圆内边缘的边界"

从形状可绘制的文档,你可以看到形状不能有层内列表,所以你应该像这样定义你的composite_border.xml

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@drawable/square_border"/> <item android:drawable="@drawable/round_border"/> </layer-list> 

请注意,我按照层列表文档中的说明更改了层列表中的项目顺序
Each drawable in the list is drawn in the order of the list—the last drawable in the list is drawn on top
你希望它从外部平方

square_border.xml

 <shape xmlns:android="http://schemas.android.com/apk/res/android"> <stroke android:width="2dp" android:color="#FF000000" /> <solid android:color="#FFC0C0C0" /> </shape> 

composite_border.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <layer-list> <item android:drawable="@drawable/round_border"/> <!-- <item android:drawable="@drawable/square_border"/> --> </layer-list> </shape> 

注意评论和引号! =]

创build一个xml文件

像round_background.xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval"> <solid android:color="#CCCC33"/> <size android:width="35dp" android:height="35dp"/> </shape> 

在布局设置为背景

  <LinearLayout android:id="@+id/layout_wellbeing" android:layout_width="wrap_content" android:layout_height="match_parent" android:layout_weight="1" android:gravity="center" android:background="@drawable/rounded_corner_leuvan" android:orientation="horizontal" > </LinearLayout> 

尝试这将工作得很好:

solid背景颜色

stroke边界

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <solid android:color="@color/white"/> <stroke android:width="1dp" android:color="#ffaaaaaa" /> <size android:width="15dp" android:height="15dp"/> </shape>