当前位置: 首页 > 面试题库 >

将colorPrimary转换为colorPrimaryDark(暗多少)

陶星波
2023-03-14
问题内容

在Material Design的指导下,状态栏应比操作栏暗多少?我在运行时为操作栏设置了颜色,并且无法在编程时知道该颜色,那么如何获得正确的状态栏颜色?

我知道我可以用这个使颜色变深

this.getSupportActionBar().setBackgroundDrawable(new ColorDrawable(colorPrimary));                              
float[] hsv = new float[3];
Color.colorToHSV(colorPrimary, hsv);
hsv[2] *= 0.8f;
int colorPrimaryDark = Color.HSVToColor(hsv);

if(Build.VERSION.SDK_INT>=21)
    Chat.this.getWindow().setStatusBarColor(colorPrimaryDark);

但我不确定要变暗多少


问题答案:

官方的Material Color
Tool
使用
chroma.darken()* / chroma.brighten()
函数基于JS库chroma.js计算变暗/变亮的颜色,该函数的算法基于CIELAB颜色空间。

***

Github上
的源代码摘录

Color.prototype.darken = function(amount=1) {
  const me = this;
  const lab = me.lab();
  lab[0] -= LAB_CONSTANTS.Kn * amount;
  return new Color(lab, 'lab').alpha(me.alpha(), true);
}

“材质颜色工具”仅使用了数量参数的后备值,而LAB_CONSTANTS.Kn为18时,它将给定基础颜色的 亮度分量L * 减去18(变暗)/增加18(变亮)。



 类似资料:
  • 我不知道是我用错了方法,还是它根本没有真正改变。谁能告诉我它们之间的区别吗? 我还尝试actionMenuTextColor更改actionBar中的文本颜色,但没有任何结果。我找到了使用parent=“theme.appcompat.light.DarkActionBar”而不是单独使用parent=“theme.appcompat.light”的解决方案。但当然只会变成白色。如果有办法的话,我

  • 我正在尝试将单个输入消息转换为多个消息。我有一个带有以下签名的方法: 类类似于: 对于中的每个,我想创建一个的实例。我如何做到这一点并处理

  • 我正在使用的太阳能光盘: 我想知道是否有一种简单的方法将图像从笛卡尔转换为极性? 如以下示例: 或者像这样的例子: 出于某种原因,我在MATLAB中找到了许多示例,但在Python中还没有找到。我一直在从opencv看这个,但我不完全确定这是我想要的,因为我想保持原始图像/数组的大小。我知道转换为极坐标会“破坏”图像,但这很好,我想做的主要事情是测量太阳圆盘从中心到边缘的强度,绘制强度与半径的函数

  • 问题内容: 我有一个查询,该查询始终返回一行且包含 许多 列。我想将其转换为2列和多行。 原始结果: 我想要的是: 这可能吗? 编辑(澄清) 我正在寻找一种自动的方法。IE浏览器,我可以传递任何只返回1行的查询结果。 问题答案: 您正在使用Oracle 11g吗?您尝试过枢轴旋转还是取消枢轴旋转? 更多信息在这里。

  • 问题内容: 我正在开发一些应用程序,它允许从SD卡中选择图像,将其保存到数据库中并为ImageView设置此值。我需要知道将uri转换为字符串并将字符串转换为uri的方法。现在,我使用了Uri的getEncodedPath()方法,但是例如,此代码不起作用: 因此,我不知道如何将Uri保存到数据库中并根据保存的值创建新的Uri。请帮我修复它。 问题答案: 我需要知道将uri转换为字符串并将字符串转

  • 问题内容: 将多维javascript数组转换为JSON的最佳方法是什么? 问题答案: 大多数流行的JavaScript框架都包含JSON实用程序功能。例如,jQuery具有直接调用url并将JSON结果作为对象加载的函数: http //docs.jquery.com/Getjson 但是,您可以从json网站获取开源JSON解析器和字符串化器: https://github.com/dougl