转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢
Drawable
通过可绘制了以下功能帮助您实现材料设计你的应用程序:
可绘制着色
突出的颜色提取
矢量可绘
这一课将告诉您如何使用您的应用程序这些功能。
可调色的Drawable资源
采用Android5.0(API等级21)以上,则可以着色定义为透明遮罩位图和nine-patches图。您可以调整它们的色彩资源或主题属性,以便于解决颜色资源(例如,
?android:attr/colorPrimary)。通常情况下,您将创建这些资产只有一次,并自动将它们上色,以符合您的主题。
您可以将色彩以BitmapDrawable或NinePatchDrawable对象与setTint()方法。您还可以设置色调的颜色和模式,在不同的界面与
android:tint和
android:tintMode属性,从图像中提取颜色突出。
Android的支持库R21及以上包括面板类,它可以让你从图像中提取突出的颜色。这个类中提取以下突出的颜色:
充满活力
充满活力的黑暗
充满活力的光
静音
柔和的暗
柔和的光线
要提取这些颜色,传递一个Bitmap对象到您加载图片的Palette.generate()静态方法在后台线程。如果你不能使用线程调用Palette.generateAsync()方法,并提供了一个监听器来代替。
你可以从图像使用getter方法在面板类,如Palette.getVibrantColor突出的颜色。
要使用调色板类项目,以下摇篮依赖添加到您的应用程序的模块:
dependencies {
...
compile 'com.android.support:palette-v7:+'
}
创建VerctorDrawable
在安卓5.0(API等级21)以上,则可以定义向量可绘制对象,其中规模又不失清晰。你的矢量图像仅需要一个资源文件,而不是一个资产文件中的位图图像的情况下,每个屏幕密度。要创建一个矢量图像,你定义了一个<vector> XML元素内部的形状的细节。
下面的例子定义了心脏的形状矢量图像:
<!-- 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中表示为VectorDrawable对象。有关pathData语法的详细信息,请参阅SVG的路径参考。有关动画的矢量可绘制对象的属性的详细信息,请参阅矢量动画效果可绘制对象。
本文深入探讨了Android应用中Drawable的三大功能:可绘制着色、突出颜色提取和矢量可绘制,以及如何利用这些功能提升应用设计。重点介绍了如何通过色彩资源和主题属性调整Drawable,使用支持库中的Palette类提取图像中的突出颜色,创建矢量图像以实现清晰缩放,并通过XML定义形状。此外,还提供了关键依赖项和代码示例,助开发者高效实践。
1万+

被折叠的 条评论
为什么被折叠?



