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?