我使用的是React Native 0.63。我想在FlatList中显示手机设备存储中的图像,并使用<Image/>
作为FlatList的renderItem
属性。使用source
属性,我添加了一个uri
键,但我仍然无法看到图像。在FlatList中生成图像块,当我试图滚动列表时,我能够看到右侧的细滚动条。
这就是我显示图像所做的事情。(这里使用的uri
是我从CameraRoll.getPhotos()
API获得的图像)
<Image
source={{ uri: 'file:///storage/emulated/0/Pictures/Twitter/20201019_160855.jpg'}}
style={{ height: 100, width: 100 }}
/>
我已确认以下内容:
1.允许对应用程序具有READ_EXTERNAL_STORAGE
和WRITE_EXTERNAL_STORAGE
权限。
1.在文件中添加了file://
前缀。
1.确保<Image/>
中的source={{ uri: ... }}
适用于外部链接,尝试使用谷歌徽标,从互联网上随机JPEG。
我注意到的另一件事是,我正在我的设备上使用Android 10的三星手机,我面临着这个问题.我试着在谷歌Nexus 5 Android模拟器上运行这个,它也运行在Android 10上,工作得很好(通过这个,我的意思是我能够访问模拟器的设备存储,而不是使用上面指定的完全相同的uri
).
**更新:**尝试在Android 7上编译应用程序,以上操作正常。SDK版本有问题吗?
4条答案
按热度按时间tsm1rwdh1#
您是否收到权限被拒绝的错误?
这可能会有所帮助:https://github.com/react-native-image-picker/react-native-image-picker/issues/1259
尝试添加的内容:
...添加到AndroidManifest.xml中的标记。
2021年5月5日起:* * Play Store将不接受此实现**并删除所有使用它的应用程序,除非应用程序功能确实需要它,并且需要请求它。
实施将需要使用作用域存储。
xsuvu9jc2#
图像是否正确显示在模拟器上?
如果问题仅出现在您的设备上,您需要检查是否已将
android.permission.READ_EXTERNAL_STORAGE
添加到AndroidManifest.xml
并请求使用文件存储的权限请参阅:用法-React原生CameraRoll
rjzwgtxy3#
h7wcgrx34#
我发现存储权限在三星手机中不起作用
所以我在
android/app/src/main/AndroidManifest.xml
更重要的是,这解决了我的问题:
<uses-permission android:name="android.permission.READ_MEDIA_IMAGES"/>
然后按常规检查权限,它将正常工作
我对React原生APP的配置
这在我的情况下工作👍👍Happy Hacking😂