**轉載請注明本文出自Cym的博客([http://blog.csdn.net/cym492224103](http://blog.csdn.net/cym492224103)**),謝謝支持!**
**
**
前言
動態色彩
根據圖片來決定標題的顏色和標題欄的背景色,這樣視覺上更具有沖擊力和新鮮感,而不像統一色調那樣呆板。

大家想知道這個效果如何實現的嗎?
學習Palette輕輕松松搞定此效果哦~!
Palette是什么?
它能讓你從圖像中提取突出的顏色。這個類能提取以下突出的顏色:
Vibrant(充滿活力的)
Vibrant dark(充滿活力的黑)
Vibrant light(充滿活力的亮)
Muted(柔和的)
Muted dark(柔和的黑)
Muted lighr(柔和的亮)
如何使用?
要提取這些顏色,在你加載圖片的后臺線程中傳遞一個位圖對象給[Palette.generate()](http://developer.android.com/reference/android/support/v7/graphics/Palette.html#generate(android.graphics.Bitmap))靜態方法。如果你不適用線程,則調用[Palette.generateAsync()](http://blog.csdn.net/bbld_/article/details/android.support.v7.graphics.Palette.PaletteAsyncListener))方法并且提供一個監聽器去替代。
你可以在[Palette](http://developer.android.com/reference/android/support/v7/graphics/Palette.html)類中使用getter方法來從檢索突出的顏色,比如Palette.getVibrantColor。
如果是Android Studio?要在你的項目中使用Palette類,增加下面的[Gradle依賴](http://developer.android.com/sdk/installing/studio-build.html#dependencies)到你的程序的模塊(module)中:
~~~
dependencies {
...
compile 'com.android.support:palette-v7:21.0.+'
}
~~~
如果是Eclipse首先我們找到sdk/extras/android/support/v7/palette/libs/android-support-v7-palette.jar導入我們的工程。
然后使用generateAsync方法傳入當前圖片的bitmap,在傳入一個監聽,在監聽里面我們拿到圖片上顏色充滿活力的顏色,最后設置標題背景和字體的顏色,代碼如下:
~~~
Palette.generateAsync(bitmap,
new Palette.PaletteAsyncListener() {
@Override
public void onGenerated(Palette palette) {
Palette.Swatch vibrant =
palette.getVibrantSwatch();
if (swatch != null) {
// If we have a vibrant color
// update the title TextView
titleView.setBackgroundColor(
vibrant.getRgb());
titleView.setTextColor(
vibrant.getTitleTextColor());
}
}
});
~~~
- 前言
- ym—— Android 5.0學習之創建模擬器
- ym—— Android 5.0學習之使用Material主題
- ym—— Android 5.0學習之使用Palette
- ym—— Android 5.0學習之AnimatedVectorDrawable
- ym—— Android 5.0學習之ListView升級版RecyclerView
- ym—— Android 5.0學習之CardView
- ym—— Android 5.0學習之Activity過渡動畫
- ym—— Android 5.0學習之定義陰影
- ym—— Android 5.0學習之動畫
- ym—— Android 5.0學習之Tinting和Clipping
- ym—— Android 5.0學習之感想篇(含Demo)