Java 在Android中反转十六进制颜色

Java 在Android中反转十六进制颜色,java,android,colors,hex,Java,Android,Colors,Hex,如何在Android中反转十六进制颜色? 我试图使用~但是这个倒置的alpha也是 private PaintType getNegativePaintType(String hexa) { //hexa = "#28cb43"; return new SolidColor(~Color.parseColor(hexa)); } 试试这个: private PaintType getNegativePaintType(String hexa) { //hexa =

如何在Android中反转十六进制颜色? 我试图使用~但是这个倒置的alpha也是

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

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)));
}
试试这个:
~cor.intValue()| 0xFF000000

什么是
cor
?它的数据类型是什么?cor是
int
cor
int
?我认为
int
没有
intValue()
方法,因为它只是一个原语。