guodegangGDG 2013-08-21 05:56 采纳率: 0%
浏览 5652
已采纳

转换颜色RGB到HEX

创建了一个方法转换三原色值到HEX值:

protected String convertRGBToHex(int r, int g, int b) {    
    String rFString, rSString, gFString, gSString, bFString, bSString, result;
    int red, green, blue;
    int rred, rgreen, rblue;
    red = r / 16;
    rred = r % 16;
    if (red == 10) rFString = "A";
    else if (red == 11) rFString = "B";
    else if (red == 12) rFString = "C";
    else if (red == 13) rFString = "D";
    else if (red == 14) rFString = "E";
    else if (red == 15) rFString = "F";
    else rFString = String.valueOf(red);

    if (rred == 10) rSString = "A";
    else if (rred == 11) rSString = "B";
    else if (rred == 12) rSString = "C";
    else if (rred == 13) rSString = "D";
    else if (rred == 14) rSString = "E";
    else if (rred == 15) rSString = "F";
    else rSString = String.valueOf(rred);

    rFString = rFString + rSString;

    green = g / 16;
    rgreen = g % 16;

    if (green == 10) gFString = "A";
    else if (green == 11) gFString = "B";
    else if (green == 12) gFString = "C";
    else if (green == 13) gFString = "D";
    else if (green == 14) gFString = "E";
    else if (green == 15) gFString = "F";
    else gFString = String.valueOf(green);

    if (rgreen == 10) gSString = "A";
    else if (rgreen == 11) gSString = "B";
    else if (rgreen == 12) gSString = "C";
    else if (rgreen == 13) gSString = "D";
    else if (rgreen == 14) gSString = "E";
    else if (rgreen == 15) gSString = "F";
    else gSString = String.valueOf(rgreen);

    gFString = gFString + gSString;

    blue = b / 16;
    rblue = b % 16;

    if (blue == 10) bFString = "A";
    else if (blue == 11) bFString = "B";
    else if (blue == 12) bFString = "C";
    else if (blue == 13) bFString = "D";
    else if (blue == 14) bFString = "E";
    else if (blue == 15) bFString = "F";
    else bFString = String.valueOf(blue);

    if (rblue == 10) bSString = "A";
    else if (rblue == 11) bSString = "B";
    else if (rblue == 12) bSString = "C";
    else if (rblue == 13) bSString = "D";
    else if (rblue == 14) bSString = "E";
    else if (rblue == 15) bSString = "F";
    else bSString = String.valueOf(rblue);
    bFString = bFString + bSString;
    result = "#" + rFString + gFString + bFString;
    return result;

}

我想知道能不能将这个string结果转换到int值,使用方法:

view.setBackgroundColor(0xF82619);

或者转换string到int:

view.setBackgroundColor(result);
  • 写回答

1条回答

  • JaveZh 2013-08-21 06:14
    关注
    view.setBackgroundColor(Color.parseColor("#0xF82619"));
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 应该如何判断含间隙的曲柄摇杆机构,轴与轴承是否发生了碰撞?
  • ¥15 vue3+express部署到nginx
  • ¥20 搭建pt1000三线制高精度测温电路
  • ¥15 使用Jdk8自带的算法,和Jdk11自带的加密结果会一样吗,不一样的话有什么解决方案,Jdk不能升级的情况
  • ¥15 画两个图 python或R
  • ¥15 在线请求openmv与pixhawk 实现实时目标跟踪的具体通讯方法
  • ¥15 八路抢答器设计出现故障
  • ¥15 opencv 无法读取视频
  • ¥15 按键修改电子时钟,C51单片机
  • ¥60 Java中实现如何实现张量类,并用于图像处理(不运用其他科学计算库和图像处理库))