背景:
2014 年 6 月 26 日 I/O 2014 开发者大会上 Google 正式推出了 Android L,它带来了全新的设计语言 Material Design,新的 API 也提供了 VectorDrawable ,意味着 Android 支持 SVG 类型的资源,也就是矢量图

Material Design 时代的 Android 需要有声有色的东西来润色 App,增加用户体验。

示例GIF:


示例图.gif

静态矢量图可以使用 Android Studio 提供的 Vector Asset (在工程的 res 目录下右键 -> new -> Vector Asset ),也可以自己去写矢量图,但这不是本篇文章所要讲的。

动态矢量图

① 配置环境(使用 Android Studio 开发)
打开项目的 build.gradle(Module:app),添加如下代码:

android {    ...    defaultConfig {        ...                vectorDrawables.useSupportLibrary = true    }    ...}dependencies {    ...        compile 'com.android.support:support-vector-drawable:26.0.0-alpha1'    compile 'com.android.support:animated-vector-drawable:26.0.0-alpha1'}

② 书写静态矢量图和动态矢量图文件
以 copy 这个文件为例,创建它的静态矢量图并命名: ic_copy_white_24dp.xml

<?xml version="1.0" encoding="utf-8"?>                    

效果如下:


copy.png

创建它的动态矢量图并命名: avd_copy.xml

<?xml version="1.0" encoding="utf-8"?>                                                                                

③ 让动态矢量图能够真正的动起来
在调用图片的类里面对图片做点击事件(图片的id 替换为你自己项目的图片名)
1)如果图片是在界面上显示的:

图片的id.setOnClickListener(new View.OnClickListener() {    @Override    public void onClick(View view) {        Drawable drawable = 图片的id.getDrawable();        if (drawable instanceof Animatable) {            ((Animatable) drawable).start();        }    }});

2)如果图片是在 Menu 上显示的:

@Overridepublic boolean onCreateOptionsMenu(Menu menu) {    super.onCreateOptionsMenu(menu);    getMenuInflater().inflate(R.menu.你项目里面的menu名, menu);    this.menu = menu;    return true;}@Overridepublic boolean onOptionsItemSelected(MenuItem item) {    Drawable drawable = item.getIcon();    if (drawable instanceof Animatable) {        ((Animatable) drawable).start();    }    switch (item.getItemId()) {        case R.id.图片的id:            // TODO: 你想要实现的动作            break;    }    return super.onOptionsItemSelected(item);}

综上所述,图片就会在你点击的时候动起来,为 App 添彩!

完整项目已传至 GitHub,欢迎 Star 、Fork !!!
https://github.com/cnwutianhao/AnimatedVector

更多相关文章

  1. android imageView 图片显示方式属性
  2. android:scaleType 属性
  3. android selector下的属性值
  4. android的异步加载与UI
  5. Android(安卓)为联系人添加图片
  6. Android(安卓)内置图片
  7. Android(安卓)WebView嵌套Html 之一
  8. android p cts CtsCameraTestCases fail
  9. Android之——史上最简单最酷炫的3D图片浏览效果的实现

随机推荐

  1. android 震动的api介绍
  2. Android XML布局报错:android/view/View$O
  3. android shape的使用
  4. android 使用eclipse编译 FBReaderJ流程
  5. android 入门学习笔记 检查网络连接是否
  6. Android错误之控件FloatingActionButton
  7. android:clipChildren 子元素超出父元素
  8. android布局layout中的一些属性
  9. Android中的人脸检测的示例代码(静态和动
  10. Android 设置控件是否可见