如何在Expo中显示动态GIF?已尝试Fresco未找到适配方案求解决
Expo 中显示 GIF 的可行方案
Expo 自带的 Image 组件默认不支持动态 GIF 的播放,给你两个直接能用的适配方案:
方案一:使用 Expo 官方推荐的 expo-image 库
这是最省心的方案,完全适配 Expo 所有环境:
- 先安装依赖:
npx expo install expo-image - 替换你原来的代码:
import { Image } from 'expo-image'; // 在组件里直接用 <Image style={{ width: 38, height: 38 }} source={require('../assets/images/avatar.gif')} autoPlay={true} // 开启自动播放 contentFit="cover" // 可选,控制图片填充方式 />
方案二:用 expo-av 实现更多控制(适合需要自定义播放逻辑的场景)
如果需要暂停、循环次数控制这类功能,可以用这个库:
- 安装依赖:
npx expo install expo-av - 示例代码:
import { Video } from 'expo-av'; // 组件内使用 <Video style={{ width: 38, height: 38 }} source={require('../assets/images/avatar.gif')} shouldPlay={true} isLooping={true} resizeMode="cover" />
你之前用原生 Image 组件不行的原因是:Expo 的原生 Image 只处理静态图片,GIF 需要专门的解码和播放逻辑,上面两个库都已经封装好了这些功能,直接用就行。
内容的提问来源于stack exchange,提问作者Goutam Pareek
相关产品推荐
相关产品推荐

