Android使用Palette获取图片主色调

Palette简介

Palette是Android中的调色板,我们可以通过传递一个Bitmap来获取一个颜色列表,可以通过类中封装的分析算法来获取其中的

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

    也可以获取一个颜色列表,自己写算法挑选你想获取的颜色

Android使用Palette获取图片主色调_第1张图片

官方APi提供两种方式

    // Synchronous
    Palette p = Palette.from(bitmap).generate();

    // Asynchronous
     Palette.from(bitmap).generate(new PaletteAsyncListener() {
     public void onGenerated(Palette p) {
        // Use generated instance
     }
     });



    使用的时候引入 

    compile 'com.android.support:palette-v7:22.2.0'


    使采用异步方式进行引用
        Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {   
        @Override
        public void onGenerated(Palette palette) {      
            Palette.Swatch swatch = palette.getMutedSwatch();
      //Palette.Swatch swatch = palette.getVibrantSwatch();
      //Palette.Swatch swatch = palette.getDarkMutedSwatch();
      //Palette.Swatch swatch = palette.getDarkVibrantSwatch();
      //Palette.Swatch swatch = palette.getLightMutedSwatch();
      //Palette.Swatch swatch = palette.getLightVibrantSwatch();
            if (swatch != null) {
                view.setBackgroundColor(swatch.getRgb());
            } else {
                Log.e("smallsoho", "swatch为空");
            }
        }
    });

github上有提供和图片加载结合的library使用起来比较简单

PicassoPalette

GlidePalette

参考资料

http://smallsoho.com/2015/07/22/Android-Palette.html
http://www.jcodecraeer.com/a/anzhuokaifa/androidkaifa/2014/1111/1955.html

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