xml - 无法将形状设置为 TextView 的背景

Posted

技术标签:

【中文标题】xml - 无法将形状设置为 TextView 的背景【英文标题】:xml - unable to set shape as background of a TextView 【发布时间】:2018-04-19 16:13:35 【问题描述】:

我正在尝试在android中设置一个带有笔划的透明圆圈作为TextView的背景:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_
    android:layout_>

    <TextView
        android:id="@+id/status"
        android:layout_
        android:layout_
        android:layout_centerHorizontal="true"
        android:layout_marginTop="24dp"
        android:background="@drawable/decibel_circle"
        android:text="30 dB"
        android:fontFamily="sans-serif"
        android:textColor="@android:color/black"
        android:textSize="70dp" />
</RelativeLayout>

这是我要使用的形状,位于 decibel-circle.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <shape xmlns:android="http://schemas.android.com/apk/res/android"
        android:shape="oval">
    <stroke
        android:
        android:color="#F44336">
    </stroke>
    <solid android:color="@android:color/transparent"/>
    <size
        android:
        android: />
    <corners android:radius="12dp" />
    </shape>
</selector>

问题是形状从未显示,无论是在预览中还是在我运行我的应用程序时。 我做错了什么?

【问题讨论】:

【参考方案1】:

在您的 decibel-circle.xml 中删除 selector 只需单独使用 shape

只用这个

 <shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="oval">
<stroke
    android:
    android:color="#F44336">
</stroke>
<solid android:color="@android:color/transparent"/>
<size
    android:
    android: />
<corners android:radius="12dp" />
</shape>

【讨论】:

以上是关于xml - 无法将形状设置为 TextView 的背景的主要内容,如果未能解决你的问题,请参考以下文章

可绘制形状上的 setCompoundDrawables 无效

“ArrayAdapter 要求资源 ID 为 TextView”XML 问题

Android_TextView属性XML详解

以编程方式将 TextView 设置为 RelativeLayout.CENTER_OF_PARENT

以编程方式在android中将下划线文本设置为TextView

Android - 将 TextView 设置为粗体不起作用