Android 5.x特性概览三
上节,对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特性概览三的更多相关文章
- Android 5.x特性概览二
上文 ,对Android 5.X特性,主要是Material Design的特性进行了介绍,这篇文章我们来使用Material Design主题. Material Design 现在有三种默认的主题 ...
- Android 5.x特性概览五
上节,介绍Material Design 对阴影效果的实现,这节,我们来介绍Android 5.x的着色与裁剪的特性. Android 5.X 在对图像的操作上增加更多的功能,下面来看看 Androi ...
- Android 5.x特性概览四
上节,我们说了palatte及其特性,这里我们介绍Android 5.x的另一个特性视图与阴影. 在第一节,我们就提到了Material Design 一大特性就是就是扁平化,倘若说 iOS 的扁平化 ...
- Android 5.x特性概览一
2014年,Google 携 Android 5.X 重装回归.迄今为止已有已有两年有余,全新设计的 UI风格和更加强悍的性能,再一次奠定了Android 的霸主地位.本文将就 UI 方面 Googl ...
- Android O新特性和行为变更总结zz
https://mp.weixin.qq.com/s/Ezfm-Xaz3fzsaSm0TU5LMw Android O 行为变更https://developer.android.google.cn/ ...
- Android N 新特性
2016年5月19日,谷歌在美国加州的山景城举办了 Google I/O 开发者大会中发布.2016年6月,Android N正式命名为“牛轧糖” 本届I/O开发者大会上,Google重点介绍了And ...
- Android艺术开发探索第三章——View的事件体系(上)
Android艺术开发探索第三章----View的事件体系(上) 我们继续来看这本书,因为有点长,所以又分了上下,你在本片中将学习到 View基础知识 什么是View View的位置参数 Motion ...
- 你不知道的JavaScript--Item24 ES6新特性概览
ES6新特性概览 本文基于lukehoban/es6features ,同时参考了大量博客资料,具体见文末引用. ES6(ECMAScript 6)是即将到来的新版本JavaScript语言的标准,代 ...
- 可能是最早的学习Android N新特性的文章
可能是最早的学习Android N新特性的文章 Google在今天放出了Android N开发者预览版.Android N支持Nexus6及以上的设备.5太子Nexus5不再得到更新. Android ...
随机推荐
- Web 开发常见安全问题
不是所有 Web 开发者都有安全的概念,甚至可能某些安全漏洞从来都没听说过.这就是这篇科普文章的存在意义,希望 Web 开发者在开发时能依此逐条检查代码中的安全问题. 注:服务器运维相关的安全注意事项 ...
- Python 之WEB前端插件
1.Font Awesome ---- 设计字体,图标 2.EasyUI ---- 各种功能 3.JqueryUI ---- 类似EasyUI 4.bootstrap ---- 必须引入JQuery( ...
- Mycat配置文件rule.xml
打开<MyCAT_HOME>/conf/rule.xml,对应的分片配置截取内容如下: <tableRule name="auto-sharding-rang-mod&qu ...
- HashSet中的元素必须重写equals方法和hashCode方法
http://jingyan.baidu.com/article/d5a880eb8fb61d13f147cc99.html 1.为什么必须重写这两个方法. 2.什么事hashSet去重,符合什么样的 ...
- scala 学习: 逆变和协变
scala 逆变和协变的概念网上有很多解释, 总结一句话就是 参数是逆变的或者不变的,返回值是协变的或者不变的. 但是为什么是这样的? 协变: 当s 是A的子类, 那么func(s) 是func(A) ...
- 学习笔记001之[Android开发视频教学].01_15_Handler的使用(二)
Handler 与线程 Bundle 的用法 在线程中处理消息的方法 待补充......
- libcurl多线程超时设置不安全(转)
from http://www.cnblogs.com/kex1n/p/4135263.html (1), 超时(timeout) libcurl 是 一个很不错的库,支持http,ftp等很多的协议 ...
- PHP验证码参考页面
http://blog.sina.com.cn/s/blog_95ee14340100z8q9.html http://www.jb51.net/article/44951.htm
- JavaScript 中2个等号与3个等号的区别
首先,== equality 等同,=== identity 恒等. ==, 两边值类型不同的时候,要先进行类型转换,再比较. ===,不做类型转换,类型不同的一定不等. 下面分别说明: 先说 === ...
- 电梯多媒体WinForm项目Q&A总结
最近,我给一家公司做了个电梯多媒体软件,该软件使用C#编写,现在我将其中遇到的问题及其解决方法总结一下,以便下次再遇到同样的问题可以快速解决:同时,也给博友分享一下,共同学习,共同提高. 1.Ques ...