Android 上有一个比较短小精悍的库 —— Palette,整个库只有Palette、Target和ColorCutQuantizer三个文件, 作用是从图像中提取突出的颜色提供UI使用。
如何使用
导入依赖包
implementation 'com.android.support:palette-v7:27.0.2'
简单使用
//需要传入要提取的图片 bitmap
val builder = Palette.from(bitmap)
builder.generate(Palette.PaletteAsyncListener { palette ->
/**
* palette.getVibrantSwatch(); //获取到充满活力的色调
* palette.getDarkVibrantSwatch(); //获取充满活力的黑
* palette.getLightVibrantSwatch(); //获取充满活力的亮
* palette.getMutedSwatch(); //获取柔和的色调
* palette.getDarkMutedSwatch(); //获取柔和的黑
* palette.getLightMutedSwatch(); //获取柔和的亮
*/
//获取color值
val swatch: Palette.Swatch? = palette.lightVibrantSwatch
val color = swatch.rgb
}
})
如上代码所示,提取图片上的颜色需要传入 bitmap,Palette 默认给了6种提取色调的种类。
源码解析
Palette有两种初始