具有圆角和背景颜色的LinearLayout

时间:2019-04-25 18:35:02

标签: java android android-layout

CompileSdkVersion 26,如果重要的话。我想创建带有圆角和背景颜色的LinearLayout。

我创建了2个LinearLayout,一个带有角,一个带有颜色,但是它们的形状与我的期望不符。

活动代码

<LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@color/whitegrey"
            android:layout_marginTop="340dp"
            android:id="@+id/layout"
            android:layout_marginStart="10dp">
        <LinearLayout
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:background="@drawable/custom_border"
            android:orientation="vertical"
            android:padding="6dp"
            android:textColor="@color/black">
    ...
    </LinearLayout>
    </LinearLayout>

custom_border.xml:

<?xml version="1.0" encoding="UTF-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <corners android:radius="20dp"/>
        <padding android:left="8dp" android:right="8dp" android:top="8dp" android:bottom="8dp"/>
        <stroke android:width="2dp" android:color="#444444" />
    </shape>

实际上,边框是圆形的,后面是带有目标颜色的矩形布局。我只想用目标颜色填充边界内的颜色。 有什么方法可以设置填充颜色,最好是在custom_border.xml中设置?

在这里,我现在所拥有的:
Here, what I have at the moment

在这里,我要实现的目标:
Here, what I want to achieve

通过电话查看,左侧字母被剪掉:
View from phone, the letters on the left are cut off

1 个答案:

答案 0 :(得分:0)

从您提供给我们的代码示例中,我似乎没有必要拥有两个LinearLayout。仅需要android:background="@drawable/custom_border"的版面。

要获得预期的结果,只需将属性<solid android:color="@color/whitegrey" />添加到您的custom_border.xml中:

<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
    <corners android:radius="20dp"/>
    <padding android:left="8dp" android:right="8dp" android:top="8dp" android:bottom="8dp"/>
    <stroke android:width="2dp" android:color="#444444" />
    <solid android:color="@color/whitegrey" />
</shape>

希望我能为您提供帮助!