标签介绍:

, , , 项目中还是用到了一些动画的标签,这里就不做展示了

path

android:name 定义该 path 的名字,这样在其他地方可以通过名字来引用这个路径

android:pathData 和 SVG 中 d 元素一样的路径信息。

android:fillColor 定义填充路径的颜色,如果没有定义则不填充路径

android:strokeColor 定义如何绘制路径边框,如果没有定义则不显示边框

android:strokeWidth 定义路径边框的粗细尺寸

android:strokeAlpha 定义路径边框的透明度

android:fillAlpha 定义填充路径颜色的透明度

android:trimPathStart 从路径起始位置截断路径的比率,取值范围从 0 到1

android:trimPathEnd 从路径结束位置截断路径的比率,取值范围从 0 到1

android:trimPathOffset 设置路径截取的范围,取值范围从 0 到1

android:strokeLineCap 设置路径线帽的形状,取值为 butt, round, square.

android:strokeLineJoin 设置路径交界处的连接方式,取值为 miter,round,bevel.

android:strokeMiterLimit 设置斜角的上限文

vector:定义这个矢量图

android:name 定义该drawable的名字

android:width 定义该 drawable 的内部(intrinsic)宽度,支持所有 Android 系统支持的尺寸,通常使用 dp

android:height 定义该 drawable 的内部(intrinsic)高度,支持所有 Android 系统支持的尺寸,通常使用 dp

android:viewportWidth 定义矢量图视图的宽度,视图就是矢量图 path 路径数据所绘制的虚拟画布

android:viewportHeight 定义矢量图视图的高度,视图就是矢量图 path 路径数据所绘制的虚拟画布

android:tint 定义该 drawable 的 tint 颜色。默认是没有 tint 颜色的

android:tintMode 定义 tint 颜色的 Porter-Duff blending 模式,默认值为 src_inandroid:autoMirrored 设置当系统为 RTL (right-to-left) 布局的时候,是否自动镜像该图片。

android:alpha 该图片的透明度属性

首先创建一个vectorDrawable

先展示一下效果图

登录界面的vectorDrawable

现在看上去还是没一点鸟用哈,也没什么特点,下一篇博客将给你惊喜,这里就不管它了

注意:这里宽高(width和height的比例及viewportHeight和viewportWidth比例)的比例很重要,这个比例必须和布局文件中宽高比例一直,比如布局文件中的宽是300dp,高是100dp,那么宽高的比例就是3:1,所以在vector中的宽高比例就是3:1

不要怪我啰嗦,因为你如果不对应,导致的直接结果就是显示后的图形是拉伸或是压缩的,然后你可能会想。我改一下就好了,那恭喜你你成功给自己挖了一个大坑,全是计算

android:width="75dp"

android:height="25dp"

android:viewportHeight="40"

android:viewportWidth="120">

android:name="firstHLine"

android:pathData="M 0,20 l 90,0"

android:strokeAlpha="0.8"

android:strokeColor="@android:color/holo_red_dark"

android:strokeWidth="0.5" />

android:name="circleTop"

android:pathData="M 90,20

A 9,9 0,1,0 81,11"

android:strokeAlpha="0.8"

android:strokeColor="@android:color/holo_red_dark"

android:strokeWidth="0.5" />

android:name="true"

android:pathData="M 81,11 l 4,6 l 10,-8"

android:strokeAlpha="0.8"

android:strokeColor="@android:color/holo_red_dark"

android:strokeLineCap="round"

android:strokeWidth="0.5" />

android:name="circleBouttom"

android:pathData="

M90,20

A 9,9 0,1,1 90,38"

android:strokeAlpha="0.8"

android:strokeColor="@android:color/holo_red_dark"

android:strokeWidth="0.5" />

android:name="secondHLine"

android:pathData="M 0,38 l 90,0"

android:strokeAlpha="0.8"

android:strokeColor="@android:color/holo_red_dark"

android:strokeWidth="0.5" />

没错我第一次看到vector的时候也是一脸懵逼,这t m是啥呀,全是字母加数字,那就具体来解释一下吧

vectorDrawable支持的指令:

M = moveto(M X,Y) :将画笔移动到指定的坐标位置

L = lineto(L X,Y) :画直线到指定的坐标位置

H = horizontal lineto(H X):画水平线到指定的X坐标位置

V = vertical lineto(V Y):画垂直线到指定的Y坐标位置

C = curveto(C X1,Y1,X2,Y2,ENDX,ENDY):三次贝赛曲线

S = smooth curveto(S X2,Y2,ENDX,ENDY)

Q = quadratic Belzier curve(Q X,Y,ENDX,ENDY):二次贝赛曲线

T = smooth quadratic Belzier curveto(T ENDX,ENDY):映射

A = elliptical Arc(A RX,RY,XROTATION,FLAG1,FLAG2,X,Y):画圆弧。分别对应: x轴半径,y轴半径,x轴偏移量,弧度(0代表取小弧度,1代表取大弧度) ,方向(0取逆时针,1为顺时针),目标X坐标,目标y坐标。(当rx=ry时就是一个圆,但是终点坐标要对哈)

Z = closepath():关闭路径

注意:这里字母大写和字母小写也是有讲究的,大写代表当前空间的绝对位置,小写代表相对位置,比如M(10,10)指的是移动到当前空间的x=10,y= 10这个位置(绝对位置),m(10,10)则指的是从当前点向右10个单位位置的点,并从当前点向下10个单位位置的点(相对位置)

这里提一下至于数字中间用逗号间隔,还是用空格来隔开都没关系,根据个人喜好

测试大写和小写分别对应的效果,代码如下

android:width="24dp"

android:height="24dp"

android:viewportHeight="100"

android:viewportWidth="100">

android:pathData="M 0,10,L 100,10"

android:strokeColor="@android:color/holo_red_light"

android:strokeWidth="2" />

android:pathData="M 0,40,l 100,40"

android:strokeColor="@android:color/holo_blue_light"

android:strokeWidth="2" />

android:pathData="M 0,80,L 100,80"

android:strokeColor="@android:color/white"

android:strokeWidth="2" />

光文字,干燥,来张图片,醒醒脑

上面路径对应的图

是不是一下感觉就懂了大小写的区别了

接下来就来画一些基本的图形(直线就不画了,上面有了),感受下vectorDrawable

先来画个圆吧

漂亮吧

代码如下

android:width="24dp"

android:height="24dp"

android:viewportHeight="24"

android:viewportWidth="24">

android:name="circle"

android:pathData="

M12,12//定位到当前空间的中心

m-10,0 //从当前点向左移动10个单位

a10,10 0 1,1 20,0//在当前点绘制一个以上面的m点为起点半径为10,终点是(20,0),注意小写是相对位置

a10,10 0 1,1 -20,0"//与上面同理

android:strokeColor="@color/colorPrimary"

android:strokeWidth="1" />

再来个难度高点的

懵逼了吧

代码如下

android:width="24dp"

android:height="24dp"

android:viewportHeight="200"

android:viewportWidth="200">

android:fillColor="@color/colorAccent"

android:pathData="

M10,0

h180//从当前点向右一条直线,绘制180个单位

q10,0 10,10//这就是贝赛曲线

v180//从当前点向下一条直线,绘制180个单位

q0,10 -10,10

h -180

q-10,0 -10,-10

v-180

q 0,-10 10,-10

M 90,100

a 30,40 -60,1,0 -60 ,10

c 20,20 40,40 60,60

c 20,-20 40,-40 60,-60//三次贝赛曲线

a 30,40 60,1,0 -60 ,-10"

android:strokeColor="@color/colorPrimary" />

**贝赛曲线绘制很简单的,但是实际用到比较少,我暂时就不做讲解了,下一篇博客的文章末尾我会给出一些学习的链接

h和v方法是太简单,读者一试便知,就不绘制了

**

android 动画后动画效果,Android5.0之后 VectorDrawable实现超炫酷动画效果相关推荐

  1. 经典回顾超炫酷阅读效果3D Book使用方法

    经典回顾超炫酷阅读效果3D Book使用方法 现在有很多人都喜欢在电脑上看小说,而电脑上看小说基本都是以记事本TXT电子书形式阅读,看起来总是觉得没有书本的那种感觉:你是不是已经受够了使用记事本看小说 ...

  2. ConstraintLayout 2.0 新特性 MotionLayout 制作炫酷动画

    转自:反魂蝶五分 https://blog.csdn.net/u014290233/article/details/94398813 在今年的Google I/O 上 Google 开发者展示了这么一 ...

  3. ios8.0 html样式,8个超炫酷仿苹果应用的HTML5动画

    苹果的产品一直以精美的UI著称,无论是软件应用还是硬件设备.本文主要分享了8个很不错的HTML5动画应用,这些动画正式模仿了苹果的各类应用,有焦点图.钟表.菜单等HTML5应用和jQuery插件,大家 ...

  4. 【Qt炫酷动画】专栏导航目录

    历时小半年,经过总结积累,详细剖析了Qt框架如何制作动画. 通过本专栏学习,可以学会如何diy窗体动画.控件动画 Qt动画 [Qt炫酷动画]专栏导航目录 [Qt炫酷动画]0.动画类简介 [Qt炫酷动画 ...

  5. android lottie字体json,从json文件到炫酷动画-Lottie实现思路和源码分析

    从json文件到炫酷动画-Lottie实现思路和源码分析,Lottie是最近Airbnb开源的动画项目,支持Android.iOS.ReactNaitve三个平台,本文分析主要Lottie把json文 ...

  6. Android 炫酷动画APP,21 款炫酷动画开源框架,照亮你的APP

    原标题:21 款炫酷动画开源框架,照亮你的APP 2017年安卓巴士全球开发者论坛-上海站 前言 最近对应用的UI视觉效果突然来了兴致,所以找了一些合适开源控件,这样更加省时,再此分享给大家,希望能对 ...

  7. canvas实现阿里云云栖大会炫酷动画效果

    效果展示: 源码展示: <!doctype html> <html> <head><meta charset="utf-8">< ...

  8. 高级UI- 属性动画炫酷动画案例+淘宝动画+源码解析+策略模式使用

    文章目录 属性动画源码: 案例1 案例2 最终效果 思路 : 代码 TODU 案例3 加载的炫酷动画. 以及策略模式的使用 效果图 思路 动画分析 先实现小圆的旋转动画, 开始在ondraw里面写动画 ...

  9. html舞动特效,7款纯CSS3实现的炫酷动画应用

    原标题:7款纯CSS3实现的炫酷动画应用 HTML5确实非常强大,我们之前也分享过很多基于HTML5 Canvas的动画特效.但是你是否知道我们可以利用纯CSS制作一些很酷的动画效果?对,CSS3可以 ...

最新文章

  1. 谷歌大脑2017总结1
  2. 利用STM32F405RG制作pyBoard实验板
  3. AOJ0033 Ball【贪心+序列处理】
  4. Linux开启动过程详解
  5. 产品认知:真正厉害的产品经理,都是“数据思维”的高手
  6. pytorch梯度下降函数_Pytorch中常用的四种优化器SGD、Momentum、RMSProp、Adam
  7. Android软件测试Monkey测试工具
  8. 自己整理实现的python小工具
  9. cartographer探秘第五章之 Cartographer 所用到的 C++11 新特性
  10. 使用FFmpegFrameGrabber获取视频缩略图
  11. LittleVGL--07lv_obj基础对象介绍、API 接口、例程演示
  12. 用DW编写网页--个人简历
  13. 风行天下!翔升N61S智能主板低价上市
  14. mc服务器bug修复,我的世界服务器BUG解决办法大全
  15. tf.estimator.train_and_evaluate 详解
  16. 不是因为有了互联网,才有了互联网思维
  17. Qt 菜单背景设置颜色 菜单设置颜色
  18. 首师大附中科创教育平台 我的刷题记录 0324 99999999海岛帝国:运输资源
  19. 根据PPG估算血压利用频谱谱-时间深度神经网络【翻】
  20. 2022年高新技术企业申报认定不通过原因解析参考建议

热门文章

  1. Linux top命令的了解以及使用
  2. 计算机基础知识集体备课,计算机集体备课(三)
  3. 自制肥鲨HDO2电源降压延长线,支持3S~6S动力电池
  4. PHPCMS短信接口替换
  5. 60个可爱的云图案设计,激发你的灵感
  6. Windows更新导致AMD Radeon Software等软件无法正常启动
  7. Android学习之仿QQ側滑功能的实现
  8. 线性判别分析(Linear Discriminant Analysis, LDA)算法分析
  9. ILSpy中baml转化为xaml的改进
  10. 智云通CRM:掌握3个心理暗示,有效增进你和客户的关联性