2012-01-03 70 views
0
void changeColor(int a, int r, int g, int b){ 
    String hex = + Integer.toHexString(a) + Integer.toHexString(r) + 
        Integer.toHexString(g) + Integer.toHexString(b); 

    int color = hex //Obviously this is a type mismatch, but how do I do this? 

    mpaint.setColor(color); 
} 

显然这是一种类型不匹配,但我该怎么做?将字符串转换为十六进制以用作画布颜色Java

+0

的可能重复[转换成十六进制的字符串表示的字节数组使用Java?](http://stackoverflow.com/questions/140131/convert-a-string-representation-of-a-hex-dump-to-a-byte-array-using-java) – Bozho 2012-01-03 22:54:29

回答

1

如果你需要一个颜色变量,你可以使用颜色构造器(但不得不范围更改为0.0-1.0)

Color(float r, float g, float b, float a)

但是,如果你到底需要一个int,你有使用bitshifts(这是一个例子,你必须知道颜色分量需要如何进行排序):

int color = (r << 24) | (g << 16) | (b << 8) | a;

+0

其实我发现用于绘制对象的Android SDK具有相同格式的内置颜色设置器。 mpaint.setARGB(a,r,g,b); – 2012-01-04 00:34:51

相关问题