Palette 提取Bitmap主色调
1. 引入Palette类
在gradle中添加
implementation 'com.android.support:palette-v7:27.1.1'
2. Palette类使用
//获取需要分析的Bitmap
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);
//创建Palette.Builder对象
Palette.Builder builder = Palette.from(bitmap);
//开始解析图片
builder.generate(new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(@NonNull Palette palette) {
//解析结果处理:
//获取图片中充满活力的色调
Palette.Swatch s = palette.getVibrantSwatch();
//获取图片中充满活力的暗色调
Palette.Swatch s1 = palette.getDarkVibrantSwatch();
//获取图片中充满活力的亮色调
Palette.Swatch s2 = palette.getLightVibrantSwatch();
//获取图片中柔和的色调
Palette.Swatch s3 = palette.getMutedSwatch();
//获取图片中柔和的暗色调
Palette.Swatch s4 = palette.getDarkMutedSwatch();
//获取图片中柔和的亮色调
Palette.Swatch s5 = palette.getLightMutedSwatch();
}
});
3. 解析结果处理 -- Palette.Swatch 类方法
- getPopulation(): 像素的数量
- getRgb(): RGB颜色
- getHsl(): HSL颜色
- getBodyTextColor(): 用于内容文本的颜色
- getTitleTextColor(): 标题文本的颜色