最近在搞自己的App,遇到一个问题,那就是怎样获取文本可见颜色的差异区间.
描述的可能不太清楚,就是如果为黑色背景,我们需要改变在此背景之上的文本的颜色,以达到视觉可以清楚的看到文本.
一开始我对背景的图片进行灰度计算,来达到我文本颜色的数值到底是白色还是黑色.
但是这样做有一个UX的缺点,那就是如果我们的背景为纯黑色,通常我们会设定的文本颜色为白色,这让用户感到刺眼.这不符合用户交互的规则.
所以我们不能仅仅的将文本颜色变成黑色或者白色.我们应该随背景的灰度值来进行调节.
我想你大致已经知道其灰度无非就是 RGB 三色颜色值相同.
我们取其中:
int grayValue = rgbToGray(Color.BLUE);
int binValue = 255>>1;
if(binValue>=grayValue){
int textColor = binValue+grayValue;
}else{
int textColor = grayValue-binValue;
}