Добавление цвета фона и радиуса рамки к макету
Я хочу создать макет с закругленными углами и заполненный цветной фон.
Это мой макет:
<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
), который правильно создает границы:
<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
), он переопределяет первый фон своими закругленными углами.
Любые мысли об этом правильно?:/
Ответы
Ответ 1
Вам не нужен отдельный элемент заполнения. На самом деле это недействительно. Вам просто нужно добавить блок 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>
Вам также не нужен layer-list
, если у вас есть только один shape
.
Ответ 2
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">