Palette的使用

Palette的使用

相信有不少的人已经开始关注Android Lollipop,全新的Material设计风格让人眼前一亮,Material强调大胆的阴影和高亮搭配,引用那些意料之外和充满活力的颜色。

这里就要说到,不久前Android在v7包中更新的 Palette 。Palette可以让我们构造色彩鲜艳的界面更加方便,通过一个图片的 bitmap 来获取图片当中明暗对比的颜色。

初始化Palette

Palette 通过一个静态方法进行初始化,并且需要传入一个 bitmap ,这个 bitmap 是我们要获取颜色图片的位图

Palette palette = Palette.generate(bitmap);

还有一个异步方法:

//提供了一个异步方法
Palette.generateAsync(bitmap, new Palette.PaletteAsyncListener() {
            @Override
            public void onGenerated(Palette palette) {
获取 Palette.Swatch
palette.getVibrantSwatch();
palette.getMutedSwatch();
palette.getLightVibrantSwatch();
palette.getLightMutedSwatch();
palette.getDarkVibrantSwatch();
palette.getDarkMutedSwatch();
通过 Palette.Swatch 获取到颜色

针对Android, Palette.Swatch.getRgb() 返回一个 int RGB颜色值。例如如下的用法:

TextView tv1 = (TextView) findViewById(R.id.tv1);
//返回一个活力的颜色
tv1.setTextColor(palette.getVibrantSwatch().getRgb());
//返回一个柔和的颜色
tv1.setBackgroundColor(palette.getMutedSwatch().getRgb());

TextView tv2 = (TextView) findViewById(R.id.tv2);
//返回一个活力的亮色
tv2.setTextColor(palette.getLightVibrantSwatch().getRgb());
//返回一个柔和的亮色
tv2.setBackgroundColor(palette.getLightMutedSwatch().getRgb());

TextView tv3 = (TextView) findViewById(R.id.tv3);
//返回一个活力的暗色
tv3.setTextColor(palette.getDarkVibrantSwatch().getRgb());
//返回一个柔和的暗色
tv3.setBackgroundColor(palette.getDarkMutedSwatch().getRgb());

TextView tv4 = (TextView) findViewById(R.id.tv4);
//返回一个适合做标题的颜色
tv4.setTextColor(palette.getVibrantSwatch().getTitleTextColor());
//返回一个适合做主题的颜色
tv4.setBackgroundColor(palette.getDarkMutedSwatch().getBodyTextColor());

总体上看,Palette的使用简单,没有复杂的方法,更方便我们针对material风格进行开发。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值