【问题标题】:Changing RGB ints after parsing from hex从十六进制解析后更改 RGB 整数
【发布时间】:2017-01-08 18:37:56
【问题描述】:

代码:

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;
    }

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

【问题讨论】:

    标签: java android


    【解决方案1】:

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

    然后,您可以通过调用 rgb() 函数并将新值 Red、Green 和 Blue 传递给它来创建新颜色。

    这里是sn-p的代码:

    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 了解更多信息。

    【讨论】:

    • 哪个Color 类有你用过的方法? Java FX Color 类和 Java AWT Color 类都没有。
    • @DavidWallace 这个问题被标记为Android,我认为AndroidColor 类具有这些功能。来源:developer.android.com/reference/android/graphics/…
    • 哦,我明白了。为了清楚起见,可能值得在您的答案中添加import android.graphics.Color;
    猜你喜欢
    • 2012-11-01
    • 2021-03-22
    • 2021-09-29
    • 2022-11-16
    • 1970-01-01
    • 2020-09-11
    • 1970-01-01
    • 2010-12-30
    相关资源
    最近更新 更多