如何检测位图图片包含柔和或鲜艳的颜色?

时间:2016-09-14 09:35:00

标签: android bitmap color-palette

我使用pallete类将随机背景颜色设置为textview,并且某些图像无法生成颜色并返回颜色,如灰色。我发现某些图片文件与getMutedColor一起使用,而其他一些图片文件与getVibrantColor和其他人一起使用。

这是我的布局。我使用ImageView显示位图,并在其下方显示TextView以显示具有随机背景的名称。

我们如何检测图像文件是否与`getMutedColor`或`getVibrantColor`一起使用?

这是我到目前为止尝试的代码:

public void generateColor(Bitmap mypic){
    mImageView.setImageBitmap(result);
    Palette p = Palette.from(result).generate();
    mTextView.setBackgroundColor(p.getVibrantColor(default_color));
}

感谢您的帮助。

1 个答案:

答案 0 :(得分:2)

我只是检查是否为空。

public int getSwatch(Bitmap b){
    Palette p = Palette.from(b).generate();
    Palette.Swatch swatch;
    if((swatch = p.getVibrantSwatch()) != null){
        return swatch.getRgb();
    }
    if((swatch = p.getLightMutedSwatch()) != null){
        return swatch.getRgb();
    }
    .
    .
    .
    return Color.WHITE;
}

Color.WHITE最后是后备颜色。如果Palette无法找到颜色,您仍会得到WHITE。你可以用你想要的任何颜色交换它。