android Palette簡介

楊學武發表於2019-02-26

Palette簡介

Palette是Android中的調色盤,我們可以通過傳遞一個Bitmap來獲取一個顏色列表,可以通過類中封裝的分析演算法來獲取其中的

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

    也可以獲取一個顏色列表,自己寫演算法挑選你想獲取的顏色

android Palette簡介

官方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

參考資料

smallsoho.com/2015/07/22/…
www.jcodecraeer.com/a/anzhuokai…

相關文章