我有一个背景可绘制对象,它的两个角只有一个半径。
<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" />
我看到的阴影。
仔细检查,您会发现阴影未完全施加在曲线上。而是将其应用于矩形区域。
我不确定为什么会这样。
答案 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"