android 中的 Shape=ring 未显示

Shape=ring in android not displaying

我试图在彩色圆圈中显示一些文本,但它无法正常工作。这就是我呈现文本的方式 -

<TextView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="GO"
    android:background="@drawable/scancircle"
    android:layout_centerVertical="true"
    android:layout_centerHorizontal="true"
    android:textColor="#ffffff"
    android:textSize="18dp"
    android:padding="9dp"
    android:onClick="Go"
    />

这就是 scancircle.xml 的样子 -

<shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="ring"
    android:innerRadius="93dp"
    android:thickness="1dp"
    android:useLevel="false"
    >
    <solid android:color="@color/primary" />
    <stroke
        android:width="2dp"
        android:color="@color/txtVwBackground"
        />

    <padding
        android:left="2dp"
        android:right="2dp"
        android:top="2dp"
        android:bottom="2dp"
        />
</shape>   

尽管 scancircle 的预览正确显示了圆圈,但文本后面没有渲染圆圈。谁能告诉为什么会这样?

提前致谢。

嗯,其实你用的不是,你用的是,中间有个洞。在你的例子中,这个洞的半径为 93dp,这使得它比 TextView 本身更大。这样你在文字后面看到的就是圆环的孔洞部分,是透明的。

您可能想要使用 oval 形状来实现 "circle behind the text" 效果。