栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

在Android中使用color和color.darker吗?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

在Android中使用color和color.darker吗?

我认为,最简单的方法是转换为HSV,在该处进行变暗,然后转换回原位:

float[] hsv = new float[3];int color = getColor();Color.colorToHSV(color, hsv);hsv[2] *= 0.8f; // value componentcolor = Color.HSVToColor(hsv);

为了减轻负担,一种简单的方法可能是将值分量乘以> 1.0。但是,您必须将结果限制在[0.0,1.0]范围内。同样,简单地相乘不会减少黑色。

因此,一个更好的解决方案是:将值分量的差从1.0减小以减小:

hsv[2] = 1.0f - 0.8f * (1.0f - hsv[2]);

这与暗化方法完全平行,只是使用1作为原点而不是0。它可以使任何颜色(甚至黑色)变亮,并且不需要任何钳位。可以简化为:

hsv[2] = 0.2f + 0.8f * hsv[2];

但是,由于浮点运算的舍入效应,我担心结果可能超过1.0f(可能是一位)。最好坚持使用稍微复杂一些的公式。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/437655.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号