Android5.0之Palette調(diào)色板

android5.0有一種新的功能,就是動態(tài)取色。在運(yùn)行時更具不同的圖片動態(tài)決定一些背景或者文字的顏色。這是一種很酷的設(shè)計,他會使視覺上更具有沖擊力和新鮮感,而不像統(tǒng)一色調(diào)那樣呆板。我們這就來介紹他的用法:

  1. 使用前需要引入
    compile 'com.android.support:palette-v7:23.4.0'
  2. Palette是什么?
    它能讓你從圖像中提取突出的顏色。這個類能提取以下突出的顏色:
    Vibrant(充滿活力的)
    Vibrant dark(充滿活力的黑)
    Vibrant light(充滿活力的亮)
    Muted(柔和的)
    Muted dark(柔和的黑)
    Muted lighr(柔和的亮)
  3. 如何使用?
    既然是從圖片中提取顏色,那么首先我們得告訴它提取的圖片
    Palette palette=Palette.from(傳入Bitmap);
    通過上面的函數(shù)我們就可獲取傳入圖片的Palette對象,然后我們在調(diào)用它的generate()方法即可獲取取色過后的Palette。
    該方法還有一個重載的方法,public AsyncTask<Bitmap, Void, Palette> generate(final PaletteAsyncListener listener),這是異步的方法在UI線程中可以使用這種。
  4. Palette 的屬性
    Palette.Swatch是一個提取顏色的樣本,通過該類可以提取到包含了我們需要的顏色內(nèi)容
    返回一個有活力的顏色. Palette.getVibrantSwatch()
    返回一個有活力的暗色. Palette.getDarkVibrantSwatch()
    返回一個有活力的亮色. Palette.getLightVibrantSwatch()
    返回一個柔和的顏色. Palette.getMutedSwatch()
    返回一個柔和的暗色. Palette.getDarkMutedSwatch()
    返回一個柔和的亮色. Palette.getLightMutedSwatch()
    有活力的顏色和有活力的暗色是開發(fā)者使用最多的,具體使用哪一種取決于你自己
  5. Swatch 屬性
    getPopulation(): 返回被該樣本代表的像素的總數(shù)
    getRgb(): 返回一個 RGB 顏色值
    getHsl(): 返回一個 HSL顏色值.
    getBodyTextColor(): 返回一個適合做內(nèi)容體顏色的顏色值
    getTitleTextColor(): 返回一個適合做標(biāo)題顏色的顏色值

標(biāo)題的文本顏色會趨向于高透明度和低對比度,字體也會應(yīng)該大一點(diǎn),body的文本顏色會趨向于高不透明度和高對比度。

Palette.from(傳入的Bitmap).generate(new Palette.PaletteAsyncListener() {
    @Override
    public void onGenerated(Palette palette) {
        //獲取充滿活力的顏色
        Palette.Swatch swatch=palette.getVibrantSwatch();
        //獲取顏色,可以用來設(shè)置背景色
        swatch.getRgb();
        //獲取的顏色可以用來設(shè)置給文字
        swatch.getTitleTextColor();
    }
});
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容