Я хочу создать заставку в флаттере. У меня есть файл изображения svg, и я не хочу преобразовывать его в JPG или PNG. Есть ли способ создать заставку с файлом изображения svg во Flutter?
Хотите реализовать заставку на нативной стороне.
ОБНОВЛЕНИЕ С SVG-КОДОМ:
<?xml version = "1.0" encoding = "iso-8859-1"?>
<!-- Uploaded to: SVG Repo, www.svgrepo.com, Generator: SVG Repo Mixer Tools -->
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg fill = "#000000" version = "1.1" id = "Capa_1" xmlns = "http://www.w3.org/2000/svg" xmlns:xlink = "http://www.w3.org/1999/xlink"
width = "800px" height = "800px" viewBox = "0 0 45.917 45.917"
xml:space = "preserve">
<g>
<g>
<path d = "M33.523,28.334c-0.717,1.155-1.498,2.358-2.344,3.608c7.121,1.065,10.766,3.347,10.766,4.481
c0,1.511-6.459,5.054-18.986,5.054c-12.528,0-18.988-3.543-18.988-5.054c0-1.135,3.645-3.416,10.768-4.481
c-0.847-1.25-1.628-2.453-2.345-3.608C5.365,29.661,0,32.385,0,36.424c0,5.925,11.551,9.024,22.959,9.024s22.958-3.1,22.958-9.024
C45.917,32.385,40.553,29.661,33.523,28.334z"/>
<path d = "M22.96,36.047c1.032,0,2.003-0.491,2.613-1.325c3.905-5.33,10.813-15.508,10.813-20.827
c0-7.416-6.012-13.427-13.427-13.427c-7.417,0-13.427,6.011-13.427,13.427c0,5.318,6.906,15.497,10.812,20.827
C20.957,35.556,21.928,36.047,22.96,36.047z M17.374,13.63c0-3.084,2.5-5.584,5.585-5.584c3.084,0,5.584,2.5,5.584,5.584
s-2.5,5.584-5.584,5.584C19.874,19.215,17.374,16.715,17.374,13.63z"/>
</g>
</g>
</svg>
Вы можете поделиться своим файлом svg, я могу сначала попробовать его на своем устройстве
У меня есть код обновления svg. вы можете создать файл и сохранить этот код в формате .svg.
@Buddy: я обновил ответ, если хочешь, можешь проверить. Спасибо.
попробуйте проверить flutter_svg от https://pub.dev это должно помочь
Я хочу заставку на родной стороне Android и iOS. С этим пакетом это возможно только тогда, когда мы делаем заставку в флаттер-виджете.
Ваш ответ может быть улучшен с помощью дополнительной вспомогательной информации. Пожалуйста, отредактируйте , чтобы добавить дополнительные сведения, такие как цитаты или документация, чтобы другие могли подтвердить правильность вашего ответа. Вы можете найти больше информации о том, как писать хорошие ответы в справочном центре.
Следуйте за мной по этим шагам
добавьте flutter_svg в свой проект, введя эту команду flutter pub add flutter_svg
создайте файл dart и внутри него создайте виджет stateFull и поместите свой svg внутрь
class SplashScreen extends StatefulWidget {
const SplashScreen({super.key});
@override
State<SplashScreen> createState() => SplashScreenState();
}
class SplashScreenState extends State<SplashScreen> {
@override
void initState((){
Future.delay(Duration(milisecound:500));
Navigator.of(context).pushNamed('/home');
})
@override
Widget build(BuildContext context) {
return Scaffold(
body:Center(
child:SvgPicture.string("<SVG></SVG>")
)
);
}
}
теперь мы должны изменить main.dart в MaterialApp и сделать его домашним для нашей заставки, тогда мы закончили
MaterialApp(home:SplashScreen());
Я хочу реализовать заставку на родной стороне, а не в флаттере. Потому что перед загрузкой Flutter Engine появляется белый экран.
вы используете флаттер, а затем хотите реализовать нативный?
Чтобы преодолеть белый экран до того, как загрузится флаттер-движок.
белый экран отображается только при отладке, он исчезает при экспорте
Поскольку я обнаружил, что packages для введения SplashScreen следует принимать только формат изображения как JPG и PNG. После работы над приложением я нашел решение сделать заставку без какого-либо пакета, используя изображение SVG как в Android, так и в iOS.
Следуйте инструкциям ниже, если вы хотите представить SplashScreen с SVG.
1.Андроид
Шаг 1:
Откройте модуль Android из приложения Flutter в Android Studio отдельно.
Шаг 2:
Откройте папку res в drawable --> включите Vector Asset (укажите путь к вашему svg изображению).
Шаг 3:
Теперь сделайте один новый рисуемый splash_screen_image с background color и включите свой Vector Asset Drawable (который мы включили в предыдущем шаге 2).
Рисуемый файл splash_screen_image.xml должен выглядеть следующим образом:
<?xml version = "1.0" encoding = "utf-8"?>
<layer-list xmlns:android = "http://schemas.android.com/apk/res/android">
<item>
<shape android:shape = "rectangle">
<solid
android:color = "your color"/>
<size
android:width = "150dp"
android:height = "150dp"/>
</shape>
</item>
<item android:gravity = "center" android:drawable = "@drawable/ic_svg"/>
</layer-list>
Шаг 4:
Теперь откройте launch_background.xml и добавьте наш новый рисунок splash_screen_image.xml.
Наш launch_background.xml будет выглядеть следующим образом:
<?xml version = "1.0" encoding = "utf-8"?>
<!-- Modify this file to customize your launch splash screen -->
<layer-list xmlns:android = "http://schemas.android.com/apk/res/android">
<item android:drawable = "@drawable/splash_screen_image" />
<!-- You can insert your own image assets here -->
<!-- <item>
<bitmap
android:gravity = "center"
android:src = "@mipmap/launch_image" />
</item> -->
</layer-list>
(Примечание: при необходимости внесите те же изменения в launch_background.xml(v21))
Шаг 5:
Ваш экран-заставка Android готов и протестируйте его, запустив приложение флаттера на устройстве Android.
2. iOS
Примечание -> Убедитесь, что вы работаете с последней версией xcode, которая поддерживает изображение svg.
Шаг 1
Откройте модуль iOS в XCode.
Шаг 2
Открыть Asset --> LaunchImage
Шаг 3
Перетащите SVG image file в пространство, указанное как 1x, 2x, 3x.
Шаг: 4
Теперь откройте LaunchScreen.storyBoard и измените цвет фона в соответствии с вашими требованиями.
Шаг: 5
Протестируйте свое флаттер-приложение, открыв его на устройстве iOS или в симуляторе.
Я надеюсь, что это оказалось очень полезным.
@Buddy: Нет, еще нет