React Native How To Set Gif Image at Splash Screen?
我创建了新的react native移动应用程序,需要将gif图像设置为初始屏幕。任何示例或源代码都可以帮助我做到这一点。
1 2 3 4 5 6 7 8 9 10 11 12 | render() { return ( <View style={styles.container}> {/*<BackgroundImage source={Images.splashScreen}*/} {/* style = {{width: 315, height: 383}} />*/} <Image style={{width: 300, height: 200}} source={{uri: 'http://gifsstore.com/public/upload/gifs/15609427721560942769.gif'}} /> </View> ); } |
这些答案似乎有点误导。问题询问如何使用react native将其添加到初始屏幕。解决方案说明了如何将gif添加到项目中,而不是如何将其添加到初始屏幕。
旨在在JS捆绑包加载IE之前加载启动屏幕,而在JS捆绑包加载之前将无法访问来自react native的
解决方案:Android
实际上可以直接在启动画面中显示gif
资源:我是否可以将GIF格式的图像添加为启动画面
查看此仓库,作为将gif集成到初始屏幕的示例。
https://github.com/koral--/android-gif-drawable
我实际上已经在今晚(2020年4月12日)运行它,并以本机0.62响应了
脚步:。
1 2 3 4 5 6 7 8 9 10 11 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:background="@color/splashscreen_bg" android:layout_height="match_parent"> <pl.droidsonroids.gif.GifImageView android:layout_width="match_parent" android:layout_height="match_parent" android:src="@drawable/tutorial" /> </RelativeLayout> |
styles.xml
通过使用
,我能够使白屏闪光灯变高
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | <resources> <!-- Base application theme. --> <style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"> <!-- Customize your theme here. --> <item name="android:textColor">#000000</item> <!-- Add the following line to set the default status bar color for all the app. --> <item name="android:statusBarColor">@color/app_bg</item> <!-- Add the following line to set the default status bar text color for all the app to be a light color (false) or a dark color (true) --> <item name="android:windowLightStatusBar">false</item> <!-- Add the following line to set the default background color for all the app. --> <item name="android:windowBackground">@color/app_bg</item> <!-- Prevents white screen from appearing when opening the app --> <item name="android:windowDisablePreview">true</item> </style> </resources> |
解决方案:iOS
希望这对所有人都有帮助!
您也可以将FastImage用于该功能。它还提供了对gif文件的支持
您也可以尝试以下代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | import FastImage from 'react-native-fast-image' <FastImage style={{ width:"100%", height:"100%" }} source={{ uri:"your URL", //give your url here priority: FastImage.priority.normal }} resizeMode={FastImage.resizeMode.contain} onLoad={() => { setTimeout( () => { //navigate to another screen after some times }, 15000 ); }} /> |
Android上的GIF和WebP支持
构建自己的本机代码时,默认情况下,Android不支持GIF和WebP。
您将需要根据应用程序的需要在android / app / build.gradle中添加一些可选模块。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | dependencies { // If your app supports Android versions before Ice Cream Sandwich (API level 14) implementation 'com.facebook.fresco:animated-base-support:1.10.0' // For animated GIF support implementation 'com.facebook.fresco:animated-gif:1.10.0' // For WebP support, including animated WebP implementation 'com.facebook.fresco:animated-webp:1.10.0' implementation 'com.facebook.fresco:webpsupport:1.10.0' // For WebP support, without animations implementation 'com.facebook.fresco:webpsupport:1.10.0' } |
此外,如果将GIF与ProGuard一起使用,则需要在proguard-rules.pro中添加此规则:
1 2 3 | -keep class com.facebook.imagepipeline.animated.factory.AnimatedFactoryImpl { public AnimatedFactoryImpl(com.facebook.imagepipeline.bitmaps.PlatformBitmapFactory, com.facebook.imagepipeline.core.ExecutorSupplier); } |
示例
1 | <Image source={require('./path/to/image/loading.gif')} /> |
或
1 | <Image source={{uri: 'http://www.urltogif/image.gif'}} /> |
将链接应用于GIF