如何在Android中反转十六进制颜色? 我正在尝试使用〜但是这也反过来了。
private PaintType getNegativePaintType(String hexa) {
//hexa = "#28cb43";
return new SolidColor(~Color.parseColor(hexa));
}
答案 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