当前位置: 首页 > 知识库问答 >
问题:

如何在React Native中显示动画Gif

隆谦
2023-03-14

在你把我和另一个类似的问题联系起来之前,比如这个或那个。我要说的是,我完全按照答案所说的做了,但我的gif不会像它应该做的那样动画化(尽管它是显示出来的)。

下面是我在一个函数中所做的操作,该函数通过主应用程序函数堆栈显示。导航容器和堆栈中的屏幕。导航器。(我使用React导航在屏幕上移动,这里的上下文是按下一个按钮,它显示DetailsScreen函数的内容)

function DetailsScreen({ navigation }) {  
  return (
    <View style={{ flex: 2, alignItems: 'center', justifyContent: 'center' }}>
      <Image source={require('./src/gif/moving.gif')} />
      <Text>Here is a gif</Text>
    </View>
  );
}

这将显示我的gif的第一个静态图像,但不会对其设置动画。

我也已经着手将实现放在构建中了。gradle依赖,但这对我没有任何帮助。我觉得问题就在那里。

implementation 'com.facebook.fresco:fresco:1.+'

// For animated GIF support
implementation 'com.facebook.fresco:animated-gif:1.+'

// For WebP support, including animated WebP
implementation 'com.facebook.fresco:animated-webp:1.+'
implementation 'com.facebook.fresco:webpsupport:1.+'

(我已经检查了fresco的新实现版本2,但仍然没有帮助。我还尝试从特定版本更改,仍然不起作用)

我使用的是React Native版本0.67。(我尝试在将react Native降级为0.66时再次启动它,但它仍然不起作用。)

此外,不确定这是否与此屏幕截图中的任何内容有关,这是我在默认情况下得到的,并在我打开文件时给了我此错误消息,但即使打开该文件,程序也可以正常启动

正常情况下,在主App()函数中首先开始显示gif,但仍保持为静态图像。

我该怎么办?我是说。。。我还能做什么?

编辑:

我找到了问题的解决方案......这是一个简单的案例,只是冷启动模拟器,我从android工作室使用。

然而,Tadej的答案是有效的,因为视图样式对齐会使gif有点混乱。如果您遇到类似的问题并且答案没有帮助,请尝试冷启动您的模拟器,甚至重新安装一个新的模拟器......或者,使用真正的android手机来测试这些事情。

无论如何,非常感谢Tadej的帮助!我希望这个问题对我这种情况下的其他人有所帮助。

Tadej Slemenšek

共有1个答案

沃博裕
2023-03-14

这对我有用。在图像道具上设置高度和宽度时未显示gif。所以我对其进行了调整,添加了maxWidth和maxHeight。

const imageUrl = 'https://media.giphy.com/media/xT0xeCCINrlk96yc0w/giphy.gif';
const App = () => {

  const { width } = useWindowDimensions();

  return (
    <View style={{flex: 1}}>
      <Image style={{flex: 1, maxWidth: width, maxHeight: width}} source={{uri: imageUrl}}/>
    </View>
  );
};
 类似资料:
  • 它与文件一起工作很好,但是当我使用文件时,它是空的。我在某处读到了将重命名为,但它只显示一帧动画gif而没有动画。有什么想法吗?

  • 问题内容: 您好,我正在使用Swing在Java 1.6上编写GUI应用程序。 我有一个弹出屏幕,该窗口在加载Swing gui时以及稍后会显示gif动画。 我的弹出屏幕是一个JDialog。动画应显示在通过以下方式添加到Jdialog的JLabel上: 现在的事情是,动画仅在gui加载后显示。我相信在GUI加载时(这是我的应用程序中的繁重操作),EDT太忙了,无法运行动画。 现在的问题是,将GU

  • 问题内容: 我正在寻找一种方法来在表格单元格中显示动画进度指示器(动画GIF,通过Java2D渲染的旋转轮等,此处没有首选项),直到计算或检索出最终显示的值为止。 到目前为止,我只是在尚未准备好加速显示的每个单元格中放置了一个静态的“待处理…”文本。当数据从后台线程到达时,我将其放入适当的单元格中并在表上调用repaint。 使用静态标签或图像可以很好地工作,但是由于单元格渲染仅将其用作橡皮图章,

  • 问题内容: 我想在应用程序中显示GIF动画图像。我发现,Android本身并不支持动画GIF的困难方式。 但是,它可以使用AnimationDrawable显示动画: 开发>指南>图像和图形> Drawables概述 该示例使用在应用程序资源中另存为帧的动画,但是我需要直接显示动画gif。 我的计划是将动画GIF分解为帧,并将每个帧作为可绘制对象添加到AnimationDrawable中。 有谁知

  • 问题内容: 我正在尝试制作一个程序来使用Tkinter显示动画GIF。这是我最初使用的代码: test.gif是以下GIF: 这可以正常工作,但是GIF的质量很糟糕。我尝试将其更改为以下内容: 但是,这偶尔会闪烁图像。虽然图片看起来不错,但是作为程序却毫无用处。我究竟做错了什么? 问题答案: 首先,您要为每个帧创建一个新的画布对象。最终,您将有成千上万的图像相互叠加。这是非常低效的;当您开始具有数

  • 我对手机和平板电脑的视图有一个问题,我想让横幅在手机中显示动画,我知道flash肯定不适用于此,所以有什么替代方案可以实现这一点,也许很长时间,所以我认为GIF也不会起作用。 有什么想法吗? 提前谢谢大家!