【问题标题】:How to colorize a drawable?如何为drawable着色?
【发布时间】:2011-09-14 11:25:17
【问题描述】:

如何通过设置色调、饱和度增量和亮度增量来为 Android 可绘制对象着色?

【问题讨论】:

  • 我改了问题,现在没有GIMP了...反正我知道怎么做我想做的,我测试后会回答这个问题。

标签: android colors drawable hsl hsv


【解决方案1】:

尚未对此进行测试,但应该可以。

public static BitmapDrawable colorize(BitmapDrawable d, float hue, float saturationDelta, float valueDelta) {
    Bitmap src = d.getBitmap();
    Bitmap b = src.copy(Bitmap.Config.ARGB_8888, true);
    for (int x = 0; x < b.getWidth(); x++) {
        for (int y = 0; y < b.getHeight(); y++) {
            int color = b.getPixel(x, y);
            float[] hsv = new float[3];
            Color.colorToHSV(color, hsv);
            hsv[0] = hue;
            hsv[1] += saturationDelta;
            hsv[2] += valueDelta;
            int newColor = Color.HSVToColor(Color.alpha(color), hsv);
            b.setPixel(x, y, newColor);
        }
    }
    return new BitmapDrawable(b);
}

【讨论】:

    猜你喜欢
    • 2021-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-17
    • 2021-01-09
    • 2014-04-29
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多