上节,对Material Design样式做了介绍,这节我们介绍Palette。

  在Android发展的长河中,UI越来越成为Google的发展重心。上文提到Android 5.x 使用palette来提取颜色,从而使主题动态适用当前页面的色调,于是乎使整个app颜色色调更加和谐统一。

  Android 内置了几种提取色调的种类,如下所示。
  1、Vibrant(充满活力的)
  2、Vibrant dark(充满活力的黑)
  3、Vibrant light(充满活力的亮)
  4、Muted(柔和的)
  5、Muted dark(柔和的黑)
  6、Muted light(柔和的亮)

  开发组能够使用 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 方法来检索相应的色调,这些色调就是我们在上面列表中所列出来的色调。

可以通过以下不同的方法来提取不同色调的颜色。代码分别如下:

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());
}
});

  而代码运行效果则是如下所示:

  

  

Android 5.x特性概览三的更多相关文章

  1. Android 5.x特性概览二

    上文 ,对Android 5.X特性,主要是Material Design的特性进行了介绍,这篇文章我们来使用Material Design主题. Material Design 现在有三种默认的主题 ...

  2. Android 5.x特性概览五

    上节,介绍Material Design 对阴影效果的实现,这节,我们来介绍Android 5.x的着色与裁剪的特性. Android 5.X 在对图像的操作上增加更多的功能,下面来看看 Androi ...

  3. Android 5.x特性概览四

    上节,我们说了palatte及其特性,这里我们介绍Android 5.x的另一个特性视图与阴影. 在第一节,我们就提到了Material Design 一大特性就是就是扁平化,倘若说 iOS 的扁平化 ...

  4. Android 5.x特性概览一

    2014年,Google 携 Android 5.X 重装回归.迄今为止已有已有两年有余,全新设计的 UI风格和更加强悍的性能,再一次奠定了Android 的霸主地位.本文将就 UI 方面 Googl ...

  5. Android O新特性和行为变更总结zz

    https://mp.weixin.qq.com/s/Ezfm-Xaz3fzsaSm0TU5LMw Android O 行为变更https://developer.android.google.cn/ ...

  6. Android N 新特性

    2016年5月19日,谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布.2016年6月,Android N正式命名为“牛轧糖” 本届I/O开发者大会上,Google重点介绍了And ...

  7. Android艺术开发探索第三章——View的事件体系(上)

    Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...

  8. 你不知道的JavaScript--Item24 ES6新特性概览

    ES6新特性概览 本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代 ...

  9. 可能是最早的学习Android N新特性的文章

    可能是最早的学习Android N新特性的文章 Google在今天放出了Android N开发者预览版.Android N支持Nexus6及以上的设备.5太子Nexus5不再得到更新. Android ...

随机推荐

  1. WPF 自定义控件

    在实际工作中,面对不同的客户需求,需要让空间显示出不同的效果.当style已经不能足够满足客户需求时,就需要程序猿自己设计自定义控件了. 根据工作经历,LZ做了个关于自定义控件的小Demo,仅供参考. ...

  2. Cocos2d-JS 自定义loading界面

    [转]http://blog.csdn.net/et_sandy/article/details/41415047 环境: win7 64位 Cocos2d-JS v3.1 Cocos Code ID ...

  3. arpg网页游戏之地图(二)

    [转]http://www.cnblogs.com/BlueWoods/p/4684557.html 这一节说说视窗,这个视窗,也就是游戏的视角.现在的网页游戏分为2D游戏,2.5D游戏和3D游戏,2 ...

  4. JsonCpp简单使用

    作者:ilife JsonCpp简单使用 1.相关概念总结 (1)解析json的方法 Json::Value json;     //表示一个json格式的对象 Json::Reader reader ...

  5. 一个用php实现的获取URL信息的类

    获取URL信息的类 使用这个类,你能获得URL的如下信息: - Host  - Path  - Statuscode (eg. 404,200, ...)  - HTTP Version  - Ser ...

  6. flex4.0密钥及破解方式

    输入下面的序列号: 1424-4507-0757-7016-8907-6937 1424-4785-4428-8084-6314-8733 1424-4794-9281-8063-2338-9079 ...

  7. jquery动态创建页面元素

    jquery用$()方法动态创建一个页面元素,例如: var $div=$("<div title='动态创建页面元素'>欢迎创建一个新的div</div>" ...

  8. python-操作MySQL数据库

    1.安装MySQLdb? 为了用DB-API编写MySQL脚本,必须确保已经安装了MySQL.复制以下代码,并执行: #!/usr/bin/python # -*- coding: UTF-8 -*- ...

  9. fzu 1402 猪的安家 (中国剩余定理)

     Problem 1402 猪的安家 Accept: 897    Submit: 5642Time Limit: 1000 mSec    Memory Limit : 32768 KB  Prob ...

  10. C#控件根据窗体改变大小

    using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using Sy ...