使用图片

下列适用于图片的功能将协助您在您的应用中实现 Material Design:

  • 图片着色
  • 突出颜色萃取
  • 矢量图片

本课程将向您展示如何在您的应用中使用这些功能。

为图片资源着色


利用 Android 5.0(API 级别 21)及更高版本,您可为位图以及定义为 Alpha 蒙版的点九图着色。 您可使用颜色资源或分解为颜色资源(例如 ?android:attr/colorPrimary)的主题属性为其着色。 通常,您只有一次机会创建这些资产并自动为其上色以符合您的主题。</p><p>您可利用 <code>setTint() 方法为 BitmapDrawable</a>NinePatchDrawable</a> 对象着色。您也可以利用 android:tint 以及<code>android:tintMode 属性设置您的布局中的着色颜色和模式。

从图像萃取突出颜色


Android 支持内容库 r21 及更高版本包括 Palette</a> 类别,可让您从图像萃取突出颜色。此类别将萃取下列突出颜色:

如果要萃取这些颜色,请将 Bitmap</a> 对象传递给位于您上载图像的背景线程的 Palette.generate()</a> 静态方法。 如果您无法使用此线程,请调用 Palette.generateAsync()</a> 方法并提供一个侦听程序。

您可使用 Palette 类别(例如 <code>Palette.getVibrantColor)中的 getter 方法从图像检索突出颜色。

如果要在项目中使用 Palette</a> 类别,请将下列 Gradle 依赖项添加至您的应用模块:

<span class="pln">dependencies </span><span class="pun">{</span><span class="pln">
 </span><span class="pun">...</span><span class="pln">
 compile </span><span class="str">'com.android.support:palette-v7:21.0.0'</span><span class="pln">
</span><span class="pun">}</span>

如果要了解更多信息,请参阅Palette</a> 类别的 API 参考文档。

创建矢量图片

Android 矢量图形

在 Android 5.0(API 级别 21)及更高版本中,您可定义矢量图片,而且图片可在不损失清晰度的情况下缩放。 您只需一个资产文件即可创建一个矢量图像,而位图图像则需要为每个屏幕密度提供一个资产文件。 如果要创建一个矢量图像,请您在 <vector> XML 元素中定义形状的详情。

下列示例以心形定义一个矢量图像:

<span class="com"><!-- res/drawable/heart.xml --></span><span class="pln">

 </span><span class="com"><!-- intrinsic size of the drawable --></span><span class="pln">
 android:height="256dp"
 android:width="256dp"
 </span><span class="com"><!-- size of the virtual canvas --></span><span class="pln">
 android:viewportWidth="32"
 android:viewportHeight="32">

 </span><span class="com"><!-- draw a path --></span><span class="pln">
 </span><span class="tag"><path</span> <span class="atn">android:fillColor</span><span class="pun">=</span><span class="atv">"#8fff"</span><span class="pln">
 </span><span class="atn">android:pathData</span><span class="pun">=</span><span class="atv">"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"</span> <span class="tag">/></span><span class="pln">
</span><span class="tag"></vector></span>

矢量图像在 Android 中以 VectorDrawable</a> 对象表示。如果要了解更多有关 pathData 语法的信息,请参阅 SVG 路径参考。如果要了解更多有关为矢量图片属性添加动画的信息,请参阅为矢量图片添加动画

分类面向开发者的 Material Design相关推荐:

面向开发者的 Material Design 入门指南 使用材料主题 创建列表与卡片 定义阴影与裁剪视图 使用图片 定义定制动画 维护兼容性