【问题标题】:Converting a String to hex for use as canvas paint color Java将字符串转换为十六进制以用作画布绘制颜色 Java
【发布时间】:2012-02-01 22:24:06
【问题描述】:
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 colors hex int


【解决方案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;

【讨论】:

  • 实际上我发现用于绘制对象的 Android SDK 具有相同格式的内置颜色设置器。 mpaint.setARGB(a, r, g, b);
猜你喜欢
  • 2012-11-24
  • 2019-10-29
  • 2017-06-10
  • 2012-11-01
  • 2017-02-13
  • 1970-01-01
  • 1970-01-01
  • 2018-03-27
  • 2011-05-29
相关资源
最近更新 更多