android studio中文本视图的带背景图像的圆角

问题描述

我有一个文本视图,我希望它的背景是一个图像,并且它的角是圆角的。我已经尝试通过创建一个可绘制文件解决这个问题,但背景图像被溢出了。

 <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>

Output:

Example Output:

解决方法

LayerList 的官方 Android 文档

LayerDrawable 是一个可绘制对象,用于管理其他可绘制对象的数组。列表中的每个可绘制对象都按照列表的顺序绘制——列表中的最后一个可绘制对象绘制在顶部。

意味着你的 drawable 需要放在圆形背景之后才能可见。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...