如何在react-native中显示动画svg?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在react-native中显示动画svg?相关的知识,希望对你有一定的参考价值。

如何在本机显示动画svg(带有关键帧)?目前,我只能显示静态SVG。

似乎react-native-svg仅能显示静态svg。

这里是SVG的摘要:

const xml = `<svg
        version="1.1"
        xmlns="http://www.w3.org/2000/svg"
        width="64"
        height="64"
        viewbox="0 0 64 64">
    <defs>
        <filter id="blur" width="200%" height="200%">
            <feGaussianBlur in="SourceAlpha" stdDeviation="3"/>
            <feOffset dx="0" dy="4" result="offsetblur"/>
            <feComponentTransfer>
                <feFuncA type="linear" slope="0.05"/>
            </feComponentTransfer>
            <feMerge>
                <feMergeNode/>
                <feMergeNode in="SourceGraphic"/>
            </feMerge>
        </filter>
        <style type="text/css"><![CDATA[
/*
** CLOUDS
*/
@keyframes am-weather-cloud-2 
  0% 
    -webkit-transform: translate(0px,0px);
       -moz-transform: translate(0px,0px);
        -ms-transform: translate(0px,0px);
            transform: translate(0px,0px);
  

  50% 
    -webkit-transform: translate(2px,0px);
       -moz-transform: translate(2px,0px);
        -ms-transform: translate(2px,0px);
            transform: translate(2px,0px);
  

  100% 
    -webkit-transform: translate(0px,0px);
       -moz-transform: translate(0px,0px);
        -ms-transform: translate(0px,0px);
            transform: translate(0px,0px);
  


.am-weather-cloud-2 
  -webkit-animation-name: am-weather-cloud-2;
     -moz-animation-name: am-weather-cloud-2;
          animation-name: am-weather-cloud-2;
  -webkit-animation-duration: 3s;
     -moz-animation-duration: 3s;
          animation-duration: 3s;
  -webkit-animation-timing-function: linear;
     -moz-animation-timing-function: linear;
          animation-timing-function: linear;
  -webkit-animation-iteration-count: infinite;
     -moz-animation-iteration-count: infinite;
          animation-iteration-count: infinite;


...

<SvgXml xml=xml width="100%" height="100%" />
答案

在本地显示SVG

Use react-native-svg or lottie-react-native
另一答案

我的建议是签出react native的lottie包,如果您可以将动画转换为lottie文件json,那么将很容易显示

以上是关于如何在react-native中显示动画svg?的主要内容,如果未能解决你的问题,请参考以下文章

无法使用 react-native-svg 或 Svg/expo 让 Svg 显示在 react-native 中

如何使 SVG 动画无缝流畅?

如何使用 JQuery 控制基于 CSS 的 SVG 动画?

在 react-native 中隐藏和显示带有动画的 createBottomTabNavigator 选项卡栏

Konva 画布中的 SVG 动画

如何显示淡入的svg元素?