Material Design系列

Android(Lollipop/5.0) Material Design(一) 简介

Android(Lollipop/5.0) Material Design(二) 入门指南

Android(Lollipop/5.0) Material Design(三) 使用Material主题

Android(Lollipop/5.0) Material Design(四) 创建列表和卡片

Android(Lollipop/5.0) Material Design(五) 定义阴影和裁剪View

Android(Lollipop/5.0) Material Design(六) 使用图片

Android(Lollipop/5.0) Material Design(七) 自定义动画

Android(Lollipop/5.0) Material Design(八) 保持兼容性


官网地址:https://developer.android.com/training/material/drawables.html


以下图片的功能能帮助你在app中实现Material设计:

·图片着色

·颜色提取

·矢量图片

Tint Drawable Resources 为图片资源染色

在Android 5.0(API级别21)及以上,你可以将图片和9-patch定义为掩饰透明度。你能使用颜色资源(如,?android:attr/colorPrimary)或主题属性来给它们上色。通常,你只需创建这些资源一次,且自动匹配你的主题为它们上色。

可以为BitmapDrawable和NinePatchDrawable 的对象使用setTint(int tint)进行染色。也可以在xml中定义android:tint和android:tintMode属性。

·关于setTint(int tint)的参数,可以是一个@color/下的属性,也可以是一个xml的selector,selector中的item是使用了数字的,如:

<selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_focused="true" android:color="@color/testcolor1"/> <item android:state_pressed="true" android:state_enabled="false" android:color="@color/testcolor2" /> <item android:state_enabled="false" android:color="@color/testcolor3" /> <item android:color="@color/testcolor5"/></selector>
·关于xml中定义属性,如:

<?xmlversion="1.0"encoding="utf-8"?>

<nine-patchxmlns:android="http://schemas.android.com/apk/res/android"

android:tint="@color/abc_primary_text_material_light"

android:tintMode="src_over"

... >

</nine-patch>

Extract Prominent Colors from an Image 从图片抽取明显的颜色

在api21上的support-v7库中有一个android-support-v7-palette.jar,它能够让你从图片中抽取一些显眼的颜色:

Palette p = Palette.generate(Bitmap bitmap);

·鲜艳的 p.getVibrantColor(int defaultColor); ·鲜艳的黑暗 p.getDarkVibrantColor(int defaultColor); ·鲜艳的明亮 p.getLightVibrantColor(int defaultColor); ·柔和的 p.getMutedColor(int defaultColor); ·柔和的黑暗 p.getDarkMutedColor(int defaultColor); ·柔和的明亮 p.getLightMutedColor(int defaultColor); Palette.generate(),用于在后台线程中执行,如果在前台线程中创建Palette对象,那么可以使用Palette.generateAsync()。

Create Vector Drawables 创建矢量图片

在Android 5.0(API级别21)及以上 可以创建矢量图片,如下面的例子可以绘制一个心形的矢量图:

<!-- res/drawable/heart.xml --><vector xmlns:android="http://schemas.android.com/apk/res/android"  <!-- intrinsic size of the drawable -->  android:height="256dp"  android:width="256dp"  <!-- size of the virtual canvas -->  android:viewportWidth="32"  android:viewportHeight="32"> <!-- draw a path --> <path android:fillColor="#8fff"   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中使用VectorDrawble对象与之对应。path的更多信息请见:http://www.w3.org/TR/SVG11/paths.html#PathData。



更多相关文章

  1. button按钮中的文字和drawableLeft的图片距离太远
  2. Android(安卓)中EditText中加入固定的图片或者文字布局
  3. Android(安卓)应用开发笔记 - 拖动效果(Gallery)
  4. android属性收集
  5. Android菜鸟日记17-SeekBar的图片效果
  6. android android:taskAffinity 详解
  7. Android基础04-基本控件及表单三大控件
  8. button按钮中的文字和drawableLeft的图片距离太远
  9. Android百度地图开发(二):项目创建

随机推荐

  1. 【JAVA】给大家推荐一道有意思的java测试
  2. ButterKnife--View注入框架
  3. Android添加一个新的按键Key
  4. android 网络定位失败 location为null的
  5. Android简单笔记本解析
  6. 反编译Android(安卓)apk文件
  7. Gradle build 报错:Received status code
  8. 如何编译Android内核
  9. android界面无标题和全屏效果实现方式
  10. android 通过adb命令控制wifi开关