布局上的高程,具有不同角半径的形状可绘制背景

时间:2017-10-21 12:36:12

标签: android android-layout material-design android-drawable

我有一个列表项的布局,如下所示:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginBottom="@dimen/spacing_very_small"
    android:layout_marginEnd="@dimen/spacing_large"
    android:layout_marginStart="64dp"
    android:layout_marginTop="@dimen/spacing_very_small">


    <LinearLayout
        android:minWidth="100dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical"
        android:layout_alignParentEnd="true"
        android:background="@drawable/red_bubble"
        android:gravity="end"
        android:layout_margin="8dp"
        android:elevation="4dp"
        >

        <TextView
            android:id="@+id/content"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:lineSpacingMultiplier="1.1"
            android:paddingTop="@dimen/spacing_normal"
            android:paddingBottom="@dimen/spacing_small"
            android:paddingStart="@dimen/spacing_normal"
            android:paddingEnd="@dimen/spacing_normal"
            android:textColor="@color/white"
            android:text="TEST"/>

        <TextView
            android:id="@+id/date"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:textSize="12dp"
            android:gravity="end"
            android:paddingStart="@dimen/spacing_normal"
            android:paddingEnd="@dimen/spacing_normal"
            android:paddingBottom="@dimen/spacing_normal"
            android:textColor="@color/white"
            android:text="yesterday"/>

    </LinearLayout>
</RelativeLayout>

LinearLayout的背景是红色和圆边的形状:

<shape xmlns:android="http://schemas.android.com/apk/res/android">

    <solid android:color="@color/red"/>

    <corners android:bottomRightRadius="5dp" android:bottomLeftRadius="20dp"
    android:topLeftRadius="5dp" android:topRightRadius="5dp" />

</shape>

问题是,为什么高程工作,并且有一个阴影,当所有边都有相同的半径,但是当我改变其中一个角度的半径时(在这种情况下是左下角)阴影消失了?

Test

这个问题有解决方案吗?

1 个答案:

答案 0 :(得分:0)

您可以通过设置ViewOutlineProvider并通过路径传递相同的形状来取回它。