1、首先需要添加Palette的依赖
// 获取图片主色调库
implementation 'com.android.support:palette-v7:28.0.0'
2.代码调用
var simpleTarget: SimpleTarget<Bitmap> = object : SimpleTarget<Bitmap>() {
override fun onResourceReady(resource: Bitmap, transition: Transition<in Bitmap>?) {
// 使用Palette类提取图片的颜色信息
Palette.from(resource).generate(object :Palette.PaletteAsyncListener{
override fun onGenerated(palette: Palette?) {
var swatch = palette?.vibrantSwatch //充满活力的色板 效果:与主色调形成反差,使图片上的时间文字更突出明显
// var swatch = palette?.lightVibrantSwatch //充满活力的亮色类型色板
// var swatch = palette?.darkVibrantSwatch //充/满活力的暗色类型色板
// var swatch = palette?.mutedSwatch //黯淡的色板
// var swatch = palette?.lightMutedSwatch //黯淡的亮色类型色板
// var swatch = palette?.darkMutedSwatch //黯淡的暗色类型色板 效果:文字颜色比较淡,色调对图片有优化衬托作用,使图片效果显得更美观
if (swatch != null) {
tv_current_time.setTextColor(swatch.bodyTextColor) //设置文本颜色
tv_current_date.setTextColor(swatch.bodyTextColor) //设置文本颜色
resource.recycle()
}
}
})
}
}
Glide.with(this)
.asBitmap()
.load(localSaveWallpaperBean.collectionWallpaperList[lastnum].wurl_master)
.into(simpleTarget)
3,调取各种色调效果方法说明
Palette.Swatch s1 = Palette.getVibrantSwatch(); //充满活力的色板
Palette.Swatch s2 = Palette.getDarkVibrantSwatch(); //充满活力的暗色类型色板
Palette.Swatch s3 = Palette.getLightVibrantSwatch(); //充满活力的亮色类型色板
Palette.Swatch s4 = Palette.getMutedSwatch(); //黯淡的色板
Palette.Swatch s5 = Palette.getDarkMutedSwatch(); //黯淡的暗色类型色板
Palette.Swatch s6 = Palette.getLightMutedSwatch(); //黯淡的亮色类型色板