我有一个textview,希望它的角是圆形的。我已经知道它可以使用android:background="@drawable/somefile"。在我的情况下,这个标签已经包括,所以不能再次使用。例如android:background="@drawable/mydialogbox"已经在后台创建图像

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="fill_parent"
    android:layout_gravity="top"
    android:background="@drawable/mydialogbox"
    android:orientation="horizontal" >

    <TextView
        android:id="@+id/textview_name"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    </LinearLayout>

</RelativeLayout>

所以当我想textview(textview_name)也与圆角,这是如何实现的。


当前回答

把你的TextView内MaterialCardView:

    <com.google.android.material.card.MaterialCardView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        app:cardCornerRadius="25dp"
        >
        <com.google.android.material.textview.MaterialTextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/emergency_sms_template"
            android:padding="6dp"
            android:textSize="11sp"
            />
    </com.google.android.material.card.MaterialCardView>

其他回答

Create rounded_corner.xml in the drawable folder and add the following content, <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="1dp" android:color="@color/common_border_color" /> <solid android:color="#ffffff" /> <padding android:left="1dp" android:right="1dp" android:bottom="1dp" android:top="1dp" /> <corners android:radius="5dp" /> </shape> Set this drawable in the TextView background property like so: android:background="@drawable/rounded_corner"

我希望这对你有用。

你可以使用SVG圆角和加载到一个ImageView和使用ConstraintLayout带来ImageView的TextView

我用它圆润ImageView和圆润TextView

除了半径,还有一些圆角属性,比如topRightRadius, topLeftRadius, bottomRightRadius, bottomLeftRadius

示例TextView与红色边界角和灰色背景

Bg_rounded.xml(在drawables文件夹中)

<shape xmlns:android="http://schemas.android.com/apk/res/android">
    <stroke
        android:width="10dp"
        android:color="#f00" />

    <solid android:color="#aaa" />

    <corners
        android:radius="5dp"
        android:topRightRadius="100dp" />
</shape>

TextView

<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:background="@drawable/bg_rounded"
    android:text="Text"
    android:padding="20dp"
    android:layout_margin="10dp"
    />

结果

因为你的顶层视图已经设置了android:background属性,你可以使用<layer-list>(链接)来创建一个新的XML绘图,它结合了你的旧背景和新的圆角背景。

列表中的每个<item>元素都绘制在下一个元素之上,因此列表中的最后一项是在顶部结束的元素。

<?xml version="1.0" encoding="utf-8"?>
<layer-list
    xmlns:android="http://schemas.android.com/apk/res/android" >
    <item>
        <bitmap android:src="@drawable/mydialogbox" />
    </item>
    <item>
        <shape>
            <stroke
                android:width="1dp"
                android:color="@color/common_border_color" />

            <solid android:color="#ffffff" />

            <padding
                    android:left="1dp"
                    android:right="1dp"
                    android:top="1dp" />

            <corners android:radius="5dp" />
        </shape>
    </item>
</layer-list>
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">

    <item android:id="@android:id/background">
        <shape>
            <corners android:radius="5dp" />
            <solid android:color="#ffffff"/>

        </shape>
    </item>
</layer-list>