java - 设置 TextView 颜色的最有效方法

标签 java android kotlin android-color

设置 TextView 颜色的最有效方法是什么?为什么?是否有一种方法可以提高内存和/或处理器效率?或者我的应用程序运行时发生的情况根本没有区别吗?每次设置颜色时引用颜色资源比声明 RGB 更好吗?

选项 1(使用 RGB channel )

myTextView.setTextColor(Color.rgb(154,160,166))

选项 2(使用颜色解析器)

myTextView.setTextColor(Color.parseColor("#2B3A11"))

选项 3(使用 colors.xml 中的颜色资源)

myTextView.setTextColor(ContextCompat.getColor(context, R.color.<name_of_colour>))

最佳答案

选项 1 应该是为 TextView 设置颜色的最快方法。选项 2 是非常封闭的第二个选项。因为 RGB 值和十六进制代码的功能类似。这一切都取决于调用它们的函数以及这些函数如何在后台执行(查看 rgb parseColor 了解这些函数的描述和实现)。

作为 myTextView.setTextColor(...) 是相同的。因此,背景中的 TextView 发生的情况保持不变,只是颜色的拾取方式有所不同。

每次设置颜色时引用颜色资源比声明 RGB 更好吗?
Ans- 这取决于你自己的用法,例如

如果你想多次使用一种颜色并且发现很难记住rgb代码,那么你绝对应该将颜色保存为int颜色资源,稍后引用。颜色资源正是为此目的而创建的!正如 @Fancesc 提到的,它确实使您的文档具有可读性和可维护性。因此,更专业的做事方式。


另一方面,在需要时正确使用 RGB 可以节省很多麻烦。

  1. 您无需在任何地方保存任何数据。
  2. 使用时不需要搜索整个颜色资源文件。
  3. 99% 的时间使用的颜色模型是 rgb/rgba,因此您所做的一切都会在这里结束。
  4. 加上更新的更新,可以更轻松地处理颜色的 RGB 和十六进制值。 here 就是一个这样的例子。 .
  5. 适合那些不熟悉颜色名称的人。



我假设您已经知道所有这些,但还是决定问它。XD。祝你有美好的一天。

关于java - 设置 TextView 颜色的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61150095/

相关文章:

映射到自定义对象时出现 java.lang.ClassCastException

java - 当 UI 线程执行其业务时,如何向用户提供按下按钮后的反馈

java - 在 TabbedPane 中使用 TextArea

android - 前台服务已终止且未重新启动

android - 关于为与 Room 中的另一个实体具有一对多关系的实体插入记录的问题

kotlin - 这个 kotlin 代码是如何工作的?

android - 组合多个 Kotlin 流以获得它们的当前值

java - OnSurfaceCreated 未绘制后添加到数组的 OpenGL ES2.0 对象

android - 从 Fragment 更新时, Activity 布局跳到状态栏后面

java - MQTT服务错误 "socket failed: EPERM"