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

如何在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/的代码。

  • 我想运行一个动画,文档声明: 返回一个CameraUpdate,用于变换相机,使指定的纬度/经度边界以最大可能的缩放级别在指定尺寸的边界框内的屏幕上居中。可以指定其他填充,以进一步限制边界框的大小。返回的CameraUpdate的方位角为0,倾斜角为0。 但我不想让它在屏幕上居中,我想把焦点区域向上移动,想象一个“align\u parent\u top”。所以我有一个摄像头更新工厂。通过滚动来实