Android学习之5.0三姐妹调色板palette的使用

生命不息,学习不止,与大家共勉之。

相信大家对5.0三姐妹都很熟悉了,分别是RecylerView,CardView,Palette,前二者以前都或多或少提到过,所以回来看了一下关于palette的使用,之所以了解它,是因为它会对整体的ui效果有一个极大的提升。

why?它是如何做到的呢?

其实很简单。

Palette,之所以称之为调色板,是因为它能从图像中提取突出的颜色。

如果我们将这个颜色赋值给ActionBar,或者布局中的其他控件,会让整体效果看起来很统一,增加了美感。

Android学习之5.0三姐妹调色板palette的使用_第1张图片

这就是palette的效果,提取图片中的图出色。

实现:

添加依赖

 compile 'com.android.support:palette-v7:24.0.0-alpha1'

提取颜色

Vibrant(充满活力的)
Vibrant dark(充满活力的黑)
Vibrant light(充满活力的亮)
Muted(柔和的)
Muted dark(柔和的黑)
Muted lighr(柔和的亮)

Vibrant.              Palette.getVibrantSwatch()
Vibrant dark.         Palette.getDarkVibrantSwatch()
Vibrant light.        Palette.getLightVibrantSwatch()
Muted.                Palette.getMutedSwatch()
Muted dark.           Palette.getDarkMutedSwatch()
Muted light.          Palette.getLightMutedSwatch()

提取方法

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.mipmap.ic_launcher);

        Palette.generateAsync(bmp, new Palette.PaletteAsyncListener() {
            @Override
            public void onGenerated(Palette palette) {
                Palette.Swatch swatch = palette.getVibrantSwatch();
                if (null != swatch) {
                    tv.setBackgroundColor(swatch.getRgb());
                    callBack.callbackFun1(swatch.getRgb());
                }
            }
        });

Swatch 包含的方法

 swatch.getBodyTextColor();
 swatch.getHsl();
 swatch.getPopulation();
 swatch.getRgb();
 swatch.getTitleTextColor();

你可以选择设置不同的颜色,比如设置textview背景,可以用

swatch.getBodyTextColor();
swatch.getTitleTextColor();

效果是差不多的。

要想效果更好的话,需要自己在调调。

今天就介绍到这,与诸君共勉!

源码下载

http://pan.baidu.com/s/1hs4NDrA

源码修改

http://pan.baidu.com/s/1bp4rTwV

你可能感兴趣的:(android,Palette)