将颜色背景和边框半径添加到布局

我想创build一个具有圆angular和填充颜色背景的布局。

这是我的布局:

<LinearLayout android:layout_width="match_parent" android:layout_height="210dp" android:orientation="vertical" android:layout_marginBottom="10dp" android:background="@drawable/offerItemLayout"> <LinearLayout android:id="@+id/offerImageHolder" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> . . . </LinearLayout> </LinearLayout> 

我有以下的drawable xml( offerItemLayout )正确创build边框:

 <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="5dp"/> <stroke android:width="1dp" android:color="@color/bggrey" /> </shape> </item> // The lines below causes an inflation failure. <item> <fill android:color="@color/white"/> </item> </layer-list> 

但是用填充插入项目会导致布局膨胀失败。

此外,如果我给内部的LinearLayout( offerImageHolder )分配一个彩色背景,它将覆盖我的圆angular的第一个背景。

任何想法正确地做到这一点? :/

Related of "将颜色背景和边框半径添加到布局"

你不需要单独的填充项目。 其实这是无效的 你只需要添加一个solid块到shape 。 随后的stroke绘制在solid顶部:

 <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <corners android:radius="5dp" /> <solid android:color="@android:color/white" /> <stroke android:width="1dip" android:color="@color/bggrey" /> </shape> 

如果只有一个shape也不需要layer-list

可绘制文件夹中的background.xml。

 <?xml version="1.0" encoding="UTF-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#FFFFFF"/> <stroke android:width="3dp" android:color="#0FECFF" /> <gradient //specify graident android:startColor="#ffffffff" android:endColor="#110000FF" android:angle="90"/> <padding android:left="5dp" android:top="5dp" android:right="5dp" android:bottom="5dp"/> <corners android:bottomRightRadius="7dp" android:bottomLeftRadius="7dp" android:topLeftRadius="7dp" android:topRightRadius="7dp"/> </shape> <LinearLayout android:layout_width="match_parent" android:layout_height="210dp" android:orientation="vertical" android:layout_marginBottom="10dp" android:background="@drawable/background">