java - 从十六进制解析后更改 RGB 整数

标签 java android

代码:

String green = "#99FFCC";
adjustColor(green);

private int adjustColor(String color){
        int colorToAdjust = Color.parseColor(color);

        //Pseudocode
        int red = colorToAdjust.getRed();  //get red value from RGB
        red *= 0.5;                        //halve it
        colorToAdjust.setRed(red);         //set red value

        return colorToAdjust;
    }

给定一个字符串十六进制颜色,我将其解析为一个整数。如何更改单个 RGB 颜色?上面是我正在尝试做的一些伪代码:解析十六进制,获取单独的颜色,更改它,写回

最佳答案

您可以通过调用red() 函数简单地提取红色的数量,然后根据蓝色和绿色的原始值以及您之前提取的红色的一半值创建新颜色。

然后您可以通过调用 rgb() 函数并将红色、绿色和蓝色的新值传递给它来创建新颜色。

这是代码 fragment :

String green = "#99FFCC";
adjustColor(green);

private int adjustColor(String color) {
    /* Get RGB Value Of Color */
    int colorToAdjust = Color.parseColor(color);

    /* Get Red Value From RGB */
    int redAmount = Color.red(colorToAdjust);

    /* Return New Color By Halving Red */
    return Color.rgb(0.5 * redAmount, Color.green(colorToAdjust), 
                     Color.blue(colorToAdjust));
}

你可以看看这个Reference获取更多信息。

关于java - 从十六进制解析后更改 RGB 整数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41536353/

相关文章:

android - 处理互联网连接 : Special Case

java - 抽屉布局中的回收器 View

java - 在 javascript 调用函数中,同时必须调用 java 函数

java - 无法解析的日期 : when convert date from dd MMM yyyy format to dd/MM/yyyy

java - 如何在 Spring 应用程序中检索 InMemoryUserDetailsManager 实例?

java - 启动 JBoss 5.1.0.GA/AttachmentStore 时出错

android - 如何修改 android 默认键盘上的键(图像或标签)

java - 如何使 Wicket 7 与 Java 8 中的 java.time 一起工作?

java - 从 MX Player 获取 Activity 结果

android - 运行时异常 : The Facebook sdk must be initialized before calling activateApp