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

如何在iOS React本机应用程序中显示从相机卷加载的动画GIF

终翰学
2023-03-14

我有一个iOS react本机应用程序,我从CameraRoll加载图像并在另一个视图中显示它们。

这适用于大多数图像,但当图像为动画GIF时,会显示图像,但不会设置动画。我希望能够显示动画原件,而不是静态缩略图。

从CameraRoll返回的图像信息的格式如下:

{
  filename: "test animated gif 1.gif",
  height: 480,
  isStored: true,
  playableDuration: 0,
  uri: "assets-library://asset/asset.GIF?id=8627D49D-CF91-414A-94DA-035F46850867&ext=GIF",
  width: 480
}

我将此显示在图像组件中:

<Image
  source={{uri: asset.uri}
  style={{
    width: 300,
    height: 225,
    borderRadius: 15,
  }}
/>

正如我所说,一个静态版本的GIF将显示-我相信这是一个自动缩略图iOS生成的相机卷图像。

URI看起来像是一种动态访问器类型的URI,而不是指向特定文件的链接,并且根据React Native docs,图像组件正在拾取缩略图。

有没有办法强制ReactNative访问GIF的原始资产文件?

其他信息:

  • 我可以成功显示从URI加载的动画GIF,但这对我没有帮助
  • 我探索了使用其他文件系统工具(如ReactNativeFetchBlob)来访问或显示文件,并且URI保持不变
  • 我尝试了不同的图像显示组件(react native fast image),但这也只是显示GIF的静态版本

共有1个答案

劳通
2023-03-14

这与您如何格式化图像源代码有关。React Native主要使用图像源中的uri呈现网络图像,因此它们可以在使用的时间之后加载。尝试使用要求代替。

<Image
  source={require('/react-native/img/favicon.png')}
 />

更多信息:https://facebook.github.io/react-native/docs/image

 类似资料:
  • 我正在尝试使用docker-machine和docker-compose。文件docker-compose.yml的定义如下: 运行时,一切正常,直到尝试执行该命令并产生错误: 无法启动容器B58E2DFA503B696417C1C3F49E2714086D4E9999BD71915A53502CB6EF43936D:[8]系统错误:exec:“./run_web.sh”:stat./run_we

  • 问题内容: 我尝试在我的网站中实施AJAX。单击div changepass的内容时,则应加载changepass.template.php。这是我为此使用的代码。 我的问题是在页面changepass.template.php完全加载时如何显示GIF动画(loading.gif)。请给我一些代码提示。 问题答案: 有很多方法可以做到这一点。一种简单的方法: JS: 詹姆斯·怀斯曼 ( James

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

  • 我目前正在使用reactNative从我的windows电脑(我唯一的电脑)构建一个移动应用程序。该应用需要在物理设备上测试,而不是在模拟器或模拟器上测试,因为它涉及一个QR扫描器,当我试图在android Studio的android模拟器/模拟器上测试QR扫描器时,它无法连接到我笔记本电脑的摄像头。所有这一切的关键在于,我唯一的物理移动设备是iPhone,React Native需要MacOS

  • 我已经测试了http://api.jquerymobile.com/loader/的代码。