TextView 的自定义颜色与 Android Studio 显示的颜色不同

Posted

技术标签:

【中文标题】TextView 的自定义颜色与 Android Studio 显示的颜色不同【英文标题】:Custom colors of TextView are different than Android Studio shows 【发布时间】:2021-09-09 22:07:52 【问题描述】:

我遇到了 TextView 颜色不正确的问题。我在 xml 片段中使用这个表达式:

android:textColor="@viewModel.currentColorOfText"

在 ViewModel 我使用 当我使用currentColorOfText = Color.BLUE 时一切正常,但是当我切换到自己定义的颜色时:

currentColorOfText.value = R.color.blue

TextView 是灰色(应该是蓝色:))

我在 color.xml 中定义的颜色:

<color name="blue">#0010FF</color>

提前致谢

【问题讨论】:

【参考方案1】:

您获取的是颜色资源 ID,而不是颜色值。

如果您打开颜色文件,您将看到 Color.BLUE 是一个 int 值:

@ColorInt public static final int BLUE = 0xFF0000FF;

要使用您的资源颜色,您需要传递您的 Activity/Application(Link to understand which one you should pass) 的上下文。

然后使用下面的代码行:

currentColorOfText.value = ContextCompat.getColor(context, R.color.blue)

查看*** answer on how to pass context.

【讨论】:

谢谢,对我帮助很大。使用 getApplication() 作为上下文是正确的方法吗?

以上是关于TextView 的自定义颜色与 Android Studio 显示的颜色不同的主要内容,如果未能解决你的问题,请参考以下文章

带有旋转,放大,缩小和移动在android中的自定义textview?

在 Android 的自定义适配器中设置 Textview 的文本的问题

TextView中显示链接 定义颜色

更改自定义颜色的边框颜色

Android中自定义TextView的样式

Android:自定义 TextView 膨胀异常