使用Palette获取图片主色调,获取图片上最佳的文字显示颜色

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(); //黯淡的亮色类型色板

 

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值