Android应用的Material设计中图片的相关处理指南

 更新时间:2016年04月07日 14:39:29   作者:匆忙拥挤repeat  
这篇文章主要介绍了Android应用的Material设计中图片的相关处理指南,除了介绍新的方法外文中还给出了一些设计标准样例仅供参考,需要的朋友可以参考下

可伸缩的矢量图片不会丢失清晰度,并且单一颜色的app-icon是完美的
可定义一个bitmap作为透明度(alpha)和运行时的颜色
可对一个bitmap image取色,会取出它比较显眼的颜色
官网地址: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。

设计标准样例

选用图片

201647143812255.jpg (360×640)

201647143834743.jpg (360×640)

描述具体事物,优先使用照片。然后可以考虑使用插画。
图片上的文字

201647143901264.jpg (360×640)

图片上的文字,需要淡淡的遮罩确保其可读性。深色的遮罩透明度在20%-40%之间,浅色的遮罩透明度在40%-60%之间。

201647143921405.jpg (360×640)

对于带有文字的大幅图片,遮罩文字区域,不要遮住整张图片。

201647143939265.jpg (360×640)

可以使用半透明的主色盖住图片。
提取颜色

201647143957004.jpg (360×640)

Android L可以从图片中提取主色,运用在其他UI元素上。
图片加载过程

201647144014065.png (760×372)

图片的加载过程非常讲究,透明度、曝光度、饱和度3个指标依次变化,效果相当细腻。

相关文章

  • Kotlin编程条件控制示例详解

    Kotlin编程条件控制示例详解

    这篇文章主要为大家介绍了Kotlin编程条件控制示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-08-08
  • Android实现一个倒计时自定义控件

    Android实现一个倒计时自定义控件

    大家好,本篇文章主要讲的是Android实现一个倒计时自定义控件,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下
    2022-02-02
  • AndroidStudio 配置 AspectJ 环境实现AOP的方法

    AndroidStudio 配置 AspectJ 环境实现AOP的方法

    本篇文章主要介绍了AndroidStudio 配置 AspectJ 环境实现AOP的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-02-02
  • Kotlin引用其他xml的view对象过程详解

    Kotlin引用其他xml的view对象过程详解

    这篇文章主要介绍了Kotlin中如何引用其他xml中的view对象,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习吧
    2023-02-02
  • android4.0混淆XmlPullParser报错原因分析解决

    android4.0混淆XmlPullParser报错原因分析解决

    今天,用android4.0在proguard-project.txt中加入 -libraryjars libs/ksoap2-android-assembly-2.6.0-jar-with-dependencies.jar这句话后,混淆时报上面的错误,下面与大家分享下具体的解决方法
    2013-06-06
  • Android 两种方法实现长按返回健退出

    Android 两种方法实现长按返回健退出

    这篇文章主要介绍了Android 两种方法实现长按返回健退出的相关资料,需要的朋友可以参考下
    2017-02-02
  • Android利用浮动窗口提示用户操作

    Android利用浮动窗口提示用户操作

    这篇文章主要为大家详细介绍了Android利用浮动窗口提示用户操作的相关资料,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-11-11
  • Android Adapter里面嵌套ListView实例详解

    Android Adapter里面嵌套ListView实例详解

    这篇文章主要介绍了Android Adapter里面嵌套ListView实例详解的相关资料,这里提供实例代码并说明如何实现该功能,需要的朋友可以参考下
    2017-07-07
  • android实现查询公交车还有几站的功能

    android实现查询公交车还有几站的功能

    这篇文章主要为大家详细介绍了android实现查询公交车还有几站的功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-05-05
  • Android面试Intent采用了什么设计模式解析

    Android面试Intent采用了什么设计模式解析

    这篇文章主要为大家介绍了Android面试Intent采用了什么设计模式解析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-03-03

最新评论