Android改变了颜色的亮度

时间:2011-01-03 07:22:31

标签: android colors

我想改变任何给定颜色的亮度(注意:我不是在谈论屏幕亮度),我看过 Color 类,它有几种方法可以在RGB和RGB之间进行转换HSV,我是这个领域的新手。首先,如果红色的亮度值是用RGB(#FF0000)表示的话,如何更改红色的亮度?

3 个答案:

答案 0 :(得分:5)

最简单的方法是将颜色转换为HSL(不是HSV!它们是不同的 - 请参阅http://en.wikipedia.org/wiki/HSL_and_HSV)并更改L分量 - 增加以使其更亮,减少以使其更暗。

答案 1 :(得分:3)

考虑到你所说的是亮度(颜色增强)而不是亮度(白色量),你的模型是HSV(又名HSB),而不是HSL。< / p>

在快速简报中,如果你在HSV上增强V通道,让我们说......一些蓝色,你有一个&#34;更多的蓝色&#34;颜色。如果你在HSL模型上增强L通道,你就会有更多的清晰和清洁的#34;蓝色。

android.graphics.Color类内置了对HSV模型的支持。使用 Color.colorToHSV() Color.HSVToColor() 编辑亮度值(或色调,或者饱和度,如果你愿意的话。)

在HSV模型上,H(色调)定义基色,S(饱和度)控制灰度量,V控制亮度。因此,如果你同时增强V并减少S,你可以获得更多的亮度。

答案 2 :(得分:2)

首先,你需要记住两件事 -

  1. 要降低亮度,可以将红色从#FF0000更改为#AA0000或#880000 - 基本上减少红色成分。
  2. 您还可以尝试降低不透明度 - 通常您会发现它比仅降低亮度更有效。