首页 > 代码库 > Creating Apps With Material Design —— Working with Drawables

Creating Apps With Material Design —— Working with Drawables

转载请注明 http://blog.csdn.net/eclipsexys 翻译自Developer Android,时间仓促,有翻译问题请留言指出,谢谢


Drawable

通过可绘制了以下功能帮助您实现材料设计你的应用程序: 


    可绘制着色 
    突出的颜色提取 
    矢量可绘 

这一课将告诉您如何使用您的应用程序这些功能。 


可调色的Drawable资源


采用Android5.0(API等级21)以上,则可以着色定义为透明遮罩位图和nine-patches图。您可以调整它们的色彩资源或主题属性,以便于解决颜色资源(例如,?android:attr/colorPrimary)。通常情况下,您将创建这些资产只有一次,并自动将它们上色,以符合您的主题。 

您可以将色彩以BitmapDrawable或NinePatchDrawable对象与setTint()方法。您还可以设置色调的颜色和模式,在不同的界面与android:tintandroid: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=http://www.mamicode.com/"M20.5,9.5>
矢量图在Android中表示为VectorDrawable对象。有关pathData语法的详细信息,请参阅SVG的路径参考。有关动画的矢量可绘制对象的属性的详细信息,请参阅矢量动画效果可绘制对象。








Creating Apps With Material Design —— Working with Drawables