圆形背景android的阴影

时间:2019-01-07 11:19:48

标签: android

我有一个背景可绘制对象,它的两个角只有一个半径。

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle">
    <corners android:topLeftRadius="6dp" android:bottomLeftRadius="6dp"></corners>
</shape>

我将其应用于textview。我还给它附加了OutlineProvider。

 <android.support.v7.widget.AppCompatTextView
        android:id="@+id/textView71"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:layout_marginStart="16dp"
        android:layout_marginTop="64dp"
        android:background="@drawable/left_rounded_border_6dp"
        android:backgroundTint="@color/colorAccent"
        android:padding="@dimen/unit_medium"
        android:elevation="10dp"
        android:outlineProvider="bounds"
        android:text="Challenge"
        android:textAppearance="@style/TextAppearance.Heading5"
        android:textColor="@color/colorTextWhite"
        app:layout_constraintBottom_toTopOf="@+id/company_logo_iv"
        app:layout_constraintEnd_toStartOf="@+id/textView73"
        app:layout_constraintHorizontal_bias="0.5"
        app:layout_constraintHorizontal_chainStyle="packed"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

我看到的阴影。

enter image description here 仔细检查,您会发现阴影未完全施加在曲线上。而是将其应用于矩形区域。

我不确定为什么会这样。

2 个答案:

答案 0 :(得分:0)

高程基于视图的轮廓提供者创建阴影。默认为背景drawable的边界-完全是矩形。

您可以创建并设置带有圆角的轮廓提供程序-请参见https://developer.android.com/training/material/shadows-clipping#Shadows

答案 1 :(得分:0)

创建可绘制的形状文件

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <gradient
        android:endColor="@color/grey_light_background"
        android:centerColor="@color/grey_light_background"
        android:startColor="@color/grey_light_background"
        android:angle="90" />
    <corners
        android:radius="@dimen/dimen_15dp"
        />
</shape>

应用于文本视图背景

    android:background="@drawable/background_grey_rounded_corner_15dp"