手把手带你实现动态Vector

首先上效果图

QQ图片20170329221847.gif

(不知道vector是啥玩意的。可以在简书搜vector第一篇就是-_-)

还算ok吧,来,直奔主题

【One】
下载工具vectalign.jar
功能:转换2个svg至vector,并生成转换动画xml
具体详细,不妨百度vectalign
http://pan.baidu.com/s/1qXQUMi4

【Two】
上阿里巴巴图库
http://www.iconfont.cn/
随便找两个svg下载
那么示例如下两个

Image 004.png
Image 005.png

【Three】
双击vectalign.jar运行(需配置好java环境)


Image 006.png

点击Load_SVG分别载入两个svg

Image 007.png

不用做任何更改,Export即可

Image 008.png

【Four】
新建工程
在app的build.gradle里加上这句
vectorDrawables.useSupportLibrary = true
目的是使vector兼容5.0以下设备

Image 014.png

再将刚才导出的文件导入
一个是4个xml文件
另一个是anim文件夹

![Image 012.png](http://upload-images.jianshu.io/upload_images/3780788-a7653ede82b22297.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240)

完成后如下

Image 013.png

接下来,在布局中加入ImageView,设置app:srcCompat和onClick

Image 015.png

在java中加入以下代码

private boolean a = true;

    public void img(View view){
    ImageView imageView = (ImageView) view;
    AnimatedVectorDrawable morphing_start = (AnimatedVectorDrawable)
     getDrawable(R.drawable.vectalign_animated_vector_drawable_start_to_end);
    AnimatedVectorDrawable morphing_end = (AnimatedVectorDrawable)
   getDrawable(R.drawable.vectalign_animated_vector_drawable_end_to_start);
    AnimatedVectorDrawable morphing=a?morphing_start:morphing_end;
    imageView.setImageDrawable(morphing);
    if (morphing != null)
        morphing.start();
    a=!a;
}

如图

Image 016.png

好了,运行编译即可。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 今天我在看某脑SVG视频和网上查资料时,发现了和某位大佬的写文章的某种巧合(报以微妙的笑容)。因为强迫症,所以我想...
    仁昌居士阅读 10,364评论 0 11
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 176,844评论 25 709
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,241评论 19 139
  • 有人缺钱,有人缺爱,有人缺知识,有人缺机遇……人活着总难圆满。为了追寻自己缺少的东西不顾代价,却在得到时发现不过如...
    淡淡忘阅读 2,241评论 0 1
  • 哪怕走个过场的对白都胜过那些真实。 2017年10月15日 星期天 雨 在黑暗的房间里,一盏台灯开着,暖橙色的光把...
    留逝时光阅读 3,931评论 12 11

友情链接更多精彩内容