日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

RELATEED CONSULTING
相關咨詢
選擇下列產品馬上在線溝通
服務時間:8:30-17:00
你可能遇到了下面的問題
關閉右側工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
主題顏色提取 ——— Palette

Palette

成都創(chuàng)新互聯(lián)公司堅持“要么做到,要么別承諾”的工作理念,服務領域包括:網(wǎng)站設計、成都做網(wǎng)站、企業(yè)官網(wǎng)、英文網(wǎng)站、手機端網(wǎng)站、網(wǎng)站推廣等服務,滿足客戶于互聯(lián)網(wǎng)時代的貴南網(wǎng)站設計、移動媒體設計的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡建設合作伙伴!

調色板 Palette 是 Android L SDK 中的新特性??梢允褂?Palette 從圖像中提取出突出的顏色(主色調),獲取到顏色之后我們再將這個顏色值賦給 ActionBar、狀態(tài)欄等。從而達到界面色調的統(tǒng)一,使界面美觀協(xié)調。

Palette 可以提取圖片中如下幾種特性的顏色:

  • Vibrant (有活力的)
  • Vibrant dark(有活力的 暗色調)
  • Vibrant light(有活力的 明亮)
  • Muted (柔和的)
  • Muted dark(柔和的 暗色調)
  • Muted light(柔和的 明亮)

內部嵌套類

  • Palette.Builder

生成器類,生成 Palette 實例。

  • Palette.Filter

過濾器接口,使 Palette 有更加細膩的顏色過濾

  • Palette.PaletteAsyncListener

異步加載監(jiān)聽

  • pattle.Swatch

提供獲取結果的色彩樣本

所有的公共方法

返回值類型方法及說明
static Palettefrom(List switches)
通過預設的 Palette.Swatch 顏色樣本列表 來生成 Palette
static Palette.Builderfrom(Bitmap bitmap)
通過返回 Palette.Builder 實例來構建 Palette
static Palettegenerate(Bitmap bitmap,int numColors)
該方法已被遺棄,建議用 Palette.Builder 來生成Palette
static Palettegenerate(Bitmap bitmap)
該方法已被遺棄,建議用 Palette.Builder 來生成Palette
static AsyncTaskgenerateAsync(Bitmap bitmap,int numColor,Palette.PaletteAsyncListener listener)
該方法已被遺棄,建議用 Palette.Builder 來生成Palette
static AsyncTaskgenerateAsync(Bitmap bitmap,Palette.PaletteAsyncListener listener)
該方法已被遺棄,建議用 Palette.Builder 來生成Palette
intgetColorForTarget(Target target,int defaultColor)
返回一個從目標獲取的的 rgb 色值
intgetDarkMutedColor(int defaultColor)
返回一個柔和的暗色調 rgb 值
Palette.SwatchgetDarkMutedSwatch()
返回一個柔和的暗色調樣本類
intgetDarkVibrantColor(int defaultColor)
返回一個鮮明的暗色調 rgb 值
Palette.SwatchgetDarkVibrantSwatch()
返回一個鮮明的暗色調樣本類
intgetDomainColor(int defaultColor)
返回 Palette 中的主色調 rgb值
Palette.SwatchgetDomainSwatch()
返回一個主色調的樣本類
intgetLightMutedColor(int defaultColor)
返回一個柔和的亮色調顏色 rgb
Palette.SwatchgetLightMutedSwatch()
返回一個柔和的亮色調樣本類
intgetLightVibrantColor(int defaultColor)
返回一個鮮明的亮色調 rgb
Palette.SwatchgetLightVibrantSwatch()
返回一個鮮明的亮色調樣本類
intgetMutedColor(int defaultColor)
返回一個柔和的顏色 rgb
Palette.SwatchgetMutedSwatch()
返回一個柔和的顏色樣本類
Palette.SwatchgetSwatchForTarget(Target target)
為給定的目標從 Palette 中返回一個選中樣本,如果未找到則返回空
ListgetSwatches()
獲取所有用在Palette中的Swatch樣本類
ListgetTargets()
獲取所有構造 Palette 的 Target
intgetVibrantColor(int defaultColor)
獲取一個鮮明的顏色 rgb
Palette.SwatchgetVibrantSwatch()
獲取一個鮮明的樣本類

使用方式

使用 Palette 需先引入 Palette 的 support 資源包:

 
 
 
  1. compile 'com.android.support:palette-v7:25.1.0' 

加載不能在主線程中進行,加載方式有同步加載和異步加載兩種:

  • 同步
 
 
 
  1. //在加載圖片的后臺線程中同步加載Palette palette = Palette.from(bitmap).genrate(); 
  2. .  
  • 異步
 
 
 
  1. //異步加載Palette.from(bitmap).genrate(new PaletteAsyncListener(){  public void onGenerated(Palette p){ 
  2.       . 
  3.       . 
  4.       . 
  5.   } 
  6. });  

具體使用代碼

這里使用 MvpDemo 中的部分代碼,跟 Glide 配合起來使用的,其他輔助類代碼直接 Demo 中查看。

 
 
 
  1. //這是 Glide 加載狀態(tài)的監(jiān)聽回調@Overridepublic boolean onResourceReady(GlideDrawable resource, String model, Target target,boolean isFromMemoryCache, boolean isFirstResource) {  //獲取到 Glide 加載圖片的 Bitmap 
  2.   final Bitmap bitmap = GlideUtils.getBitmap(resource);  //獲取到24dp的長度 
  3.   final int twentyFourDip = (int) TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,                  24, ZhihuStoryInfoActivity.this.getResources().getDisplayMetrics());  assert bitmap != null; 
  4.   Palette.from(bitmap)          //設置構建 Palette 時使用的最大顏色數(shù),風景景觀推薦值在10-16,人臉圖像色值增加到24 
  5.           .maximumColorCount(3) 
  6.           .clearFilters() 
  7.           .setRegion(0, 0, bitmap.getWidth() - 1, twentyFourDip) 
  8.           .generate(new Palette.PaletteAsyncListener() {              @Override 
  9.               public void onGenerated(Palette palette) {                  boolean isDark;                  int lightness = ColorUtils.isDark(palette);                  if (lightness == ColorUtils.LIGHTNESS_UNKNOWN) { 
  10.                       isDark = ColorUtils.isDark(bitmap, bitmap.getWidth() / 2, 0); 
  11.                   } else { 
  12.                       isDark = lightness == ColorUtils.IS_DARK; 
  13.                   }                  if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {                      int statusBarColor = getWindow().getStatusBarColor();                      final Palette.Swatch topColor = ColorUtils.getMostPopulousSwatch(palette);                      if (topColor != null && (isDark || Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)) { 
  14.                           statusBarColor = ColorUtils.scrimify(topColor.getRgb(), isDark, SCRIM_ADJUSTMENT);                          if (!isDark && Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { 
  15.                               ViewUtils.setLightStatusBar(mStoryImg); 
  16.                           } 
  17.                       }                      if (statusBarColor != getWindow().getStatusBarColor()) { 
  18.                           ValueAnimator statusBarColorAnim = ValueAnimator.ofArgb( 
  19.                                   getWindow().getStatusBarColor(), statusBarColor); 
  20.                           statusBarColorAnim 
  21.                               .addUpdateListener(new ValueAnimator 
  22.                               .AnimatorUpdateListener() {                                  @Override 
  23.                                   public void onAnimationUpdate(ValueAnimator animation) { 
  24.                                       getWindow().setStatusBarColor((int) animation.getAnimatedValue()); 
  25.                                   } 
  26.                               });                                  //設置轉換顏色的動畫時間 
  27.                                   statusBarColorAnim.setDuration(1000L); 
  28.                                   statusBarColorAnim.setInterpolator(                                          new AccelerateInterpolator()); 
  29.                                   statusBarColorAnim.start(); 
  30.                       } 
  31.                   } 
  32.               } 
  33.           }); 

名稱欄目:主題顏色提取 ——— Palette
網(wǎng)頁鏈接:http://m.5511xx.com/article/ccdeiej.html