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" 效果。
我试图在彩色圆圈中显示一些文本,但它无法正常工作。这就是我呈现文本的方式 -
<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" 效果。