在Delphi中使用的颜色值(TColor),同步到安卓后颜色不对了,因为没使用#FFFFFF这种16进制使用颜色,所以只能自己想办法转换了,经过研究下面的java代码转换成功:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
public static int WinColor2Android(int dcolor){ int acolor = 0; byte b = (byte) (dcolor >> 16); byte g = (byte) (dcolor >> 8); byte r = (byte) (dcolor >> 0); int ib = b & 0xff; int ig = g & 0xff; int ir = r & 0xff; acolor = Color.argb(255, ir, ig, ib); return acolor; } |
因为Java中的byte是有符号的,范围是-127-128,所以要使用& 0xff转换为0-255之间的值。