创建Material Design风格的Android应用--使用Drawable
下面Drawables的功能帮助你在应用中实现Material Design:
图片资源着色
在android 5.0(api 21)和更高版本号,能够着色bitmap和.9 png 通过定义透明度遮盖。你能够着色通过使用颜色资源或者主题的属性去解析颜色资源(比方,?android:attr/colorPrimary).通常我们创建一次,然后资源自适应主题。
你能够给BitmapDrawable或NinePatchDrawable对象着色使用setTint()方法。你能够能够在布局文件里使用android:tint和android:tintMode属性设置着色颜色和着色模式。
从图片中抽取高亮颜色
support library r21和更高的版本号中包含了Palette类,能够从一个图片中提取高亮颜色。这个类能够提起下面几种突出颜色:
Vibrant 充满生机
Vibrant dark 暗的充满生机
Vibrant light 亮的充满生机
Muted 柔和
Muted dark 暗的柔和
Muted light 亮的柔和
传递一个Bitmap对象给静态方法Palette.generate(),它会在后台线程帮你从后台线程提取颜色。假设你不能使用这个后台线程,使用Palette.generateAsync()方法,而且设置一个监听器listener.
你能够从图片中取得突出颜色使用Palette类中的getter方法,比方Palette.getVibrantColor.
在项目中使用Palette方法,须要在项目中包括v7包palette的jar, gradle dependecy加入的方式是:
|
1
2
|
...compile'com.android.support:palette-v7:21.0.+' |
以下这个是演示样例代码:
|
1
2
3
4
5
6
|
Palette.generateAsync(bitmap,new public // palette.getVibrantColor(Color.BLACK);//get } }); |

很多其它信息,请查看Paltette的api文档:http://developer.android.com/reference/android/support/v7/graphics/Palette.html
创建矢量drawables
在android 5.0和更高版本号中,能够创建矢量的drawable,在缩放的时候不会失真。你仅仅须要定义一个矢量图片文件,相反的,使用bitmap位图则须要针对不同的分辨率创建多个文件。创建一个矢量图片,你须要说明图形的具体,在xml文件的 标签下。
以下是一个样例:
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
<?xml="1.0"="utf-8"?><!--<vector xmlns:android="http://schemas.android.com/apk/res/android" android:width="256dp" android:height="256dp" android:viewportHeight="32" android:viewportWidth="32"> <!-- <path android:fillColor="#f15467" android:pathData="M20.5,9.5 c-1.955,0,-3.83,1.268,-4.5,3 c-0.67,-1.732,-2.547,-3,-4.5,-3 C8.957,9.5,7,11.432,7,14 c0,3.53,3.793,6.257,9,11.5 c5.207,-5.242,9,-7.97,9,-11.5 C25,11.432,23.043,9.5,20.5,9.5z"/></vector> |
上面的图显示效果例如以下:

矢量图片在android表现为VectorDrawable对象。很多其它信息,查看Svg
Path reference。
參考资料:http://developer.android.com/training/material/drawables.html
原文地址:http://blog.isming.me/2014/11/03/creating-app-with-material-design-four-drawables/,转载请注明出处。
创建Material Design风格的Android应用--使用Drawable的更多相关文章
- 创建Material Design风格的Android应用--应用主题
本人全部文章首先公布于个人博客,欢迎关注,地址:http://blog.isming.me 昨天正式公布了android 5,同一时候android developer站点也更新了,添加了创建Mate ...
- 创建Material Design风格Android应用--自定义阴影和裁剪视图
之前已经写过通过应用主题和使用ListView, CardView,应用Material Design样式,同一时候都都能够通过support library向下兼容.今天要写的阴影和视图裁剪.无法向 ...
- Android实现Material Design风格的设置页面(滑动开关控件)
前言 本文链接 http://blog.csdn.net/never_cxb/article/details/50763271 转载请注明出处 參考了这篇文章 Material Design 风格的设 ...
- Android开发实战之拥有Material Design风格的侧滑布局
在实现开发要求中,有需要会使用抽屉式布局,类似于QQ5.0的侧滑菜单,实现的方式有很多种,可以自定义控件,也可以使用第三方开源库. 同样的谷歌也推出了自己的侧滑组件——DrawLayout,使用方式也 ...
- [原创]自定义view之:快速开发一款Material Design风格的dialog的开源项目MDDialog
随着google开始主导Material Design风格的设计,越来越多的app开始使用Material Design风格来设计自己的UI.虽然在Android Studio中集成了多种快速开发框架 ...
- Material Design风格登录注册
本文实现了以下功能 完整的代码和样例托管在Github 当接口锁定时,防止后退按钮显示在登录Activity 上. 自定义 ProgressDialog来显示加载的状态. 符合材料设计规范. 悬浮标签 ...
- 自定义 Material Design风格的提示框
关闭 自定义 Material Design风格的提示框 2016-04-24 10:55 152人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 其实在14年谷歌 ...
- Material Design风格的水波涟漪效果(Ripple Effect)的实现
Material Design是Google在2014年Google I/O大会上推出的一套全新的设计语言,经过接近两年的发展,可谓是以燎原之势影响着整个设计交互生态,和Material Design ...
- 基于React Native的Material Design风格的组件库 MRN
基于React Native的Material Design风格的组件库.(为了平台统一体验,目前只打算支持安卓) 官方网站 http://mrn.js.org/ Github https://git ...
随机推荐
- Android Fragment使用
通常地 fragment做为宿主activity UI的一部分, 被作为activity整个view hierarchy的一部分被嵌入. 有2种方法你能够加入一个fr ...
- Microsoft Visio 2010 怎样把直线,虚线与箭头之间切换
我也是第一次接触这个东西,感慨是把箭头变成直线都搞了半天没搞出来,上网搜页没结果,一次偶然我会了,真是老天爷眷顾我,如今把方法给大家分享,欢迎大家不吝赐教. 直线变箭头: 刚開始是直线: 接着选中直线 ...
- sha1加密java代码
sha1 加密 java代码 public static String getSha1(String str){ if(str==null||str.length()==0){ return null ...
- SVN的revert和update命令的区别
svn中的revert和update 今天有人问到revert和update的问题. 刚开始还真被问住了. 因为感觉revert和update都可以将本地的copy更新到以前的一个版本,会有什么不同呢 ...
- Xcode6在10.9.4上面crash解决
具体请看我的evernote 这里: 在10.9.4系统上面直接安装xcode6的beta3.和平时一样, 1.将beta3拖拽到application文件夹中. 2.等待copy完毕,执行xcode ...
- HiPAC高性能规则匹配算法之查找过程
收到一封邮件,有位朋友认为我误解了nf-HiPAC.如此的一个高性能算法怎能被什么传统的hash,tree之类的胁迫.是啊.HiPAC是一个非常猛的算法.文档也比較少,这就更加添加了其神奇感,可是这决 ...
- json级联城市
代码: <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> < ...
- 【原创】leetCodeOj --- Sliding Window Maximum 解题报告
天,这题我已经没有底气高呼“水”了... 题目的地址: https://leetcode.com/problems/sliding-window-maximum/ 题目内容: Given an arr ...
- 在MyEclipse8.5中配置Tomcat6.0服务器
一.单击工具栏的的黑小三角,选择—>Configure Server,出现首选项对话框,在对话框的左边框中找到MyEclipse—>Application Servers下找到Tomcat ...
- 深度分析 Java 的 ClassLoader 机制(源码级别)(转)
写在前面:Java中的所有类,必须被装载到jvm中才能运行,这个装载工作是由jvm中的类装载器完成的,类装载器所做的工作实质是把类文件从硬盘读取到内存中,JVM在加载类的时候,都是通过ClassLoa ...