我使用pallete
类将随机背景颜色设置为textview
,并且某些图像无法生成颜色并返回颜色,如灰色。我发现某些图片文件与getMutedColor
一起使用,而其他一些图片文件与getVibrantColor
和其他人一起使用。
这是我的布局。我使用ImageView
显示位图,并在其下方显示TextView
以显示具有随机背景的名称。
这是我到目前为止尝试的代码:
public void generateColor(Bitmap mypic){
mImageView.setImageBitmap(result);
Palette p = Palette.from(result).generate();
mTextView.setBackgroundColor(p.getVibrantColor(default_color));
}
感谢您的帮助。
答案 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
。你可以用你想要的任何颜色交换它。