问题描述
我有一个文本视图,我希望它的背景是一个图像,并且它的角是圆角的。我已经尝试通过创建一个可绘制文件来解决这个问题,但背景图像被溢出了。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="200dp"
android:padding="5dp"
android:orientation="horizontal">
<TextView
android:id="@+id/info_text"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:textColor="@color/colorPrimaryDark"
android:background="@drawable/drawable_file"
/>
</LinearLayout>
drawable_file.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list
xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<bitmap android:src="@drawable/img" />
</item>
<item>
<shape>
<stroke
android:width="1dp" />
<corners android:radius="50dp" />
</shape>
</item>
</layer-list>
解决方法
如 LayerList 的官方 Android 文档
LayerDrawable 是一个可绘制对象,用于管理其他可绘制对象的数组。列表中的每个可绘制对象都按照列表的顺序绘制——列表中的最后一个可绘制对象绘制在顶部。
意味着你的 drawable 需要放在圆形背景之后才能可见。