Android 5.x特性概覽三

  上節,對Material Design樣式作了介紹,這節咱們介紹Palette。android

  在Android發展的長河中,UI愈來愈成爲Google的發展重心。上文提到Android 5.x 使用palette來提取顏色,從而使主題動態適用當前頁面的色調,因而乎使整個app顏色色調更加和諧統一。app

  Android 內置了幾種提取色調的種類,以下所示。
  一、Vibrant(充滿活力的)
  二、Vibrant dark(充滿活力的黑)
  三、Vibrant light(充滿活力的亮)
  四、Muted(柔和的)
  五、Muted dark(柔和的黑)
  六、Muted light(柔和的亮)ide

  開發組可以使用 Palette提供 的 API,可以讓咱們從 Bitmap 中獲取對應的色調,修改當前的主題色調。  使用 Palette 首先須要在 Android Studio 中引用相關的依賴,在項目列表上點擊 F4,而後在Module Setting 的 Dependencies 選項卡中添com.android.support:palette-v7:21.0.2 引用,從新同步項目便可。能夠經過傳遞一個 Bitmap 對象給 Palette,並調用它的 Palette.generate()靜態方法或者 Palette.generateAsync()方法來建立一Palette。接下來,就可使用 getter 方法來檢索相應的色調,這些色調就是咱們在上面列表中所列出來的色調。spa

能夠經過如下不一樣的方法來提取不一樣色調的顏色。代碼分別以下:code

palette.getVibrantSwatch ();
palette.getDarkVibrantSwatch ();
palette.getLightVibrantSwatch ();
palette.getMutedSwatch ();
palette.getDarkMutedSwatch ();
palette.getLightMutedSwatch ();

而下面這個例子,演示了使用 getDarkVibrantSwatch()方法提取的色調效果色調來改變狀態欄的色調,代碼以下所示。對象

Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
                R.drawable.test);
        // 建立Palette對象
        Palette.generateAsync(bitmap, new PaletteAsyncListener() {

            @Override
            public void onGenerated(Palette palette) {
                Palette.Swatch swatch = palette.getDarkMutedSwatch();

//                getActionBar().setBackgroundDrawable(
//                        new ColorDrawable(swatch.getRgb()));
                Window window = getWindow();
                window.setStatusBarColor(swatch.getRgb());
            }
        });

  而代碼運行效果則是以下所示:blog

  

相關文章
相關標籤/搜索