React Native 中的 bodymovin 动画错误?

Error on bodymovin animation in react native?

我正在使用 sample.json 图像文件,它是通过 Lottie for React Native 在我的页面中用于 bodymovin 动画的。

我正在获取图像,但图像未完全检索到,图像的某些部分丢失,并且在图像的某些侧面,图像上粘贴了绿色。

但我通过在线 json 图片查看器检查了 sample.json。但是源头的图片没有问题

这里是问题https://i.stack.imgur.com/yFZfg.jpg

这里是原图https://i.stack.imgur.com/4sBzg.jpg

这是我的代码

 import React from 'react';
    import { Animated, Easing, easing  } from 'react-native';
    import Animation from 'lottie-react-native';

    export default class BasicExample extends React.Component {
       constructor(props) {
        super(props);
        this.state = {
         progress: new Animated.Value(0.5),
      };
    }

    componentDidMount() {
     this.startAnimation();
    }
    startAnimation() {
    Animated.timing(
      this.state.progress,
      {
      toValue: 1,
      from: 0,
      to: 1,
      duration: 5000,
      }
    )
    .start(() => {
       // Restart at end
       this.state.progress.setValue(0);
       this.startAnimation();
     });
    }
    render() {
       const easing = Easing.inOut(Easing.quad);
       const { Animate } = this.props;
      return (
          <Animation
             style={{
              width: 300,
              height: 300,
            }}
           source={this.props.Animate}
           progress={this.state.progress}
          />
         );
       }
     }

我也安装了 lottie npm。

所以这是我的问题,请帮助我解决这个问题 提前致谢

更新: 现在我仔细查看了您的代码,发现您通过更改 progress 道具的值来制作动画。那不是怎么做的。您需要使用 ref 将动画引用到。

return (
    <Animation
      ref={(animation) => this.myAnimation = animation}
      style={{
        width: 300,
        height: 300,
      }}
      source={this.props.Animate}
    />
);

然后:

componentDidMount() {
  this.startAnimation();
}

startAnimation() {
  this.myAnimation.play();
}

旧答案:

您的代码看起来完全合法,如果您看到图片,就证明您做对了。

我假设 JSON 有问题,或者 Lottie 只是解释了错误的值。

我在 Android 设备上遇到过小的样式问题,但在 iOS 上没有。而且它们主要与对齐有关。

如果您在 SO 中没有得到任何正确的答案,我建议您向 github 提交问题(例如:https://github.com/airbnb/lottie-react-native/issues/182