在Android

时间:2016-01-20 21:21:11

标签: java android colors hex

如何在Android中反转十六进制颜色? 我正在尝试使用〜但是这也反过来了。

 private PaintType getNegativePaintType(String hexa) {
    //hexa = "#28cb43"; 
    return new SolidColor(~Color.parseColor(hexa));
}

2 个答案:

答案 0 :(得分:1)

试试这个:

private PaintType getNegativePaintType(String hexa) {
    //hexa = "#28cb43";
    int color = Color.parseColor(hexa);
    return new SolidColor((color & 0xFF000000) | (~color & 0x00FFFFFF));
}

重点是切断反转的alpha值(~color & 0x00FFFFFF)然后应用(|)原始值(color & 0xFF000000)。

或者这个:

private PaintType getNegativePaintType(String hexa) {
    //hexa = "#28cb43";
    int color = Color.parseColor(hexa);
    int invertedColor = ~color;
    return new SolidColor(Color.argb(Color.alpha(color), Color.red(invertedColor), Color.green(invertedColor), Color.blue(invertedColor)));
}

答案 1 :(得分:1)

试试这个: ~cor.intValue() | 0xFF000000