SVG—最简单的SVG动画

这篇博客介绍了SVG的基础命令,如M、L、H、V、Q、C和Z,并展示了如何创建静态SVG。接着,文章详细讲解了如何将SVG转换为Android可识别的格式,并通过animated-vector实现SVG动画,特别是同形Path之间的转变。还提到了target标签和需要注意的事项,以及提供了一些相关资源链接和Demo。
摘要由CSDN通过智能技术生成

效果展示


SVG的几个最基础的命令


**M:**新建起点,参数x,y(M20, 30)
**L:**连接直线,参数x,y(L30, 20)
**H:**纵坐标不变,横向连线,参数x(H20)
**V:**横坐标不变,纵向连线,参数y(V30)
**Q:**二次贝塞尔曲线,参数x1,y1,x2,y2(Q10,20,30,40)
**C:**三次贝塞尔曲线,参数x1,y1,x2,y2,x3,y3(C10,20,30,40,50, 60)
**Z:**连接首尾,闭合曲线,无参数

光看没毛用,画一下。一根线画出来了,3根线也不是问题。(请无视贝塞尔曲线,我目前也不懂)

最基本的一个静态SVG(不含动画)


SVG文件

svg是一个公共标准,下面文件只是android对应的格式,一般我们android猿要获取一个svg文件的渠道是:

  • 网上下。
    http://iconfont.cn/
    这个网站如何用?我是xjb点着点着就会了,无非就是看见图标就点,找download,实在不会网上搜下。

  • 自己画。
    **在线画图自定义生成svg:**http://editor.method.ac/
    画好了之后,点击网页上的File->save默认保存为svg格式。但这个svg在android是无法使用的。需要下一步的转换。
    **普通svg转换为android平台可识别的svg格式:**http://inloop.github.io/svg2android/
    点开这个软件中间的区域,会让你选择本地文件,你就选刚刚生成的svg文件,完事之后保存,copy到项目drawAble目录下就能用了。

  • 找有经验的UI做.(UI妹妹表示你一点也不怜香惜玉)

PS:你也可以去下Studio插件里有一个"SVG to VectorDrawable",这个也能将公共格式的svg转换为android格式的SVG。

这是本文用到SVG文件:


<vector xmlns:android="http://schemas.android.com/apk/res/android"
    android:height="300dp"
    android:width="300dp"
    android:viewportHeight="70"
    android:viewportWidth="70" >

    <group
        android:name
  • 8
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: SVG文本动画可以通过CSS动画或JavaScript实现。以下是两种实现方式: 1. CSS动画:使用CSS的@keyframes规则定义动画,并将其应用于SVG文本元素。例如,可以使用以下代码创建一个向上移动的文本动画: ``` <svg> <text x="50%" y="50%" text-anchor="middle">Hello World!</text> </svg> <style> text { animation: move-up 2s ease-in-out infinite; } @keyframes move-up { 0% { transform: translateY(0); } 50% { transform: translateY(-20px); } 100% { transform: translateY(0); } } </style> ``` 2. JavaScript:使用SVG的API(如getBBox()和setAttribute())来操作SVG文本元素的属性,从而创建动画效果。例如,可以使用以下代码创建一个文本放大缩小的动画: ``` <svg> <text x="50%" y="50%" text-anchor="middle" font-size="24">Hello World!</text> </svg> <script> var textElem = document.querySelector('text'); var originalFontSize = textElem.getAttribute('font-size'); var scaleFactor = 1.2; function animate() { textElem.setAttribute('font-size', originalFontSize); textElem.animate([ { transform: 'scale(1)' }, { transform: 'scale(' + scaleFactor + ')' }, { transform: 'scale(1)' } ], { duration: 1000, easing: 'ease-in-out', iterations: Infinity }); } animate(); </script> ``` 这些例子仅仅是SVG文本动画简单介绍,你可以根据自己的需求和创意,使用更多的SVG API和CSS属性来创建更加复杂和炫酷的动画效果。 ### 回答2: SVG(可缩放矢量图形)是一种用于在网页上创建图形的XML标记语言。在SVG中,我们可以使用文本元素创建文字,并通过动画效果使其呈现出各种变化。 要创建SVG文本动画,我们通常可以使用CSS或JavaScript来实现。 使用CSS,我们可以通过@keyframes规则来定义动画的关键帧。我们可以为文本元素添加CSS类,并为该类添加动画属性,例如动画名称、持续时间和重复次数。然后,我们可以定义具体的关键帧,例如起始状态、中间状态和结束状态,以实现文本的动态效果。通过在关键帧之间设置适当的过渡,我们可以创建平滑的动画效果。最后,通过将CSS动画应用于文本元素,我们可以触发动画的播放。 另一种方法是使用JavaScript来实现SVG文本动画。我们可以使用SVG DOM API来获取文本元素,然后使用JavaScript来对元素属性进行动态修改。通过改变文本的位置、旋转角度、透明度等属性,我们可以实现各种动画效果。我们还可以使用JavaScript库如GSAP来简化动画的操作和控制。 无论我们选择CSS还是JavaScript,都可以使用SVG的特性和功能来创建各种文本动画效果。我们可以实现闪烁的字体、文字路径动画、字体逐渐出现和消失等效果。通过探索不同的动画属性和效果,我们可以创造出独特且吸引人的SVG文本动画效果。 ### 回答3: SVG文本动画是一种使用可缩放矢量图形(SVG)来创建动画效果的技术。SVG文本动画可以通过在SVG文本元素中应用不同的属性和效果来实现。 首先,我们可以使用CSS来为SVG文本元素应用一些基本的动画效果。可以使用@keyframes规则来定义动画的关键帧,并使用animation属性将其应用于SVG文本元素。通过指定关键帧的属性值和持续时间,可以创建各种效果,比如逐字显示、渐变、旋转等。 其次,我们可以使用SVG的<animate>元素来创建更复杂的文本动画效果。通过在SVG文本元素中插入<animate>元素并设置关键属性,我们可以实现文本的平移、缩放、旋转等动态效果。可以通过设置不同的动画属性值、持续时间和重复次数来控制动画的效果。 此外,我们还可以使用JavaScript来控制SVG文本的动画。通过使用SVG的DOM API,我们可以动态地改变SVG文本元素的属性值来实现动画效果。可以通过在JavaScript中编写动画函数,并将其与SVG文本元素关联起来,实现更复杂的动画交互效果。 总之,SVG文本动画是一种强大的技术,可以为网页和应用程序添加各种吸引人的动画效果。通过合理地运用CSS、SVG和JavaScript,我们可以创造出丰富多样的SVG文本动画,提升用户体验并增加视觉吸引力。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值