I want to add a Lottie animation for a splash screen before any content launches in my Flutter app. The plugins I've checked out don't completely support all features of the animations yet or don't work as desired.
Is there some way I can add it before the actual flutter activity launches. I want the animation to completely finish, and only then go forward to the main content.
Any help appreciated, thanks!
Currently the Lottie plugins for Flutter do not work that well (hopefully they are improved soon) but what I did for my app is save the animation as a .gif (set repeat to once) which can then natively be displayed in an ImageView, then use a timer to move to the next screen one the animation has finished.
Not the ideal solution but a work around until the plugins have been improved.
You can use lottie plugin. lottie: ^0.7.0+1
And then use status listener provided by AnimationController.
Code below:
_controller = AnimationController(vsync: this)
..addStatusListener((status) {
if(status == AnimationStatus.completed){
//Move to next page
}
Related
I have implemented the Lottie animation splash screen on android with the new Intent, is there a way to do the same in iOS.
I know LaunchScreen.storyboard is unable to do this, but is there a way to generate a new UIViewController show it on screen with Lottie animation, and while the animation is playing in I will prepare Xamarin App in background task, and when animation ends call LoadApplication(app).
Or is there any other way to start playing Lottie animation first when you launch your app on iOS ?
Setting Lottie animation as the main page in Xamarin Forms is not an option, waiting on Xamarin Forms to start the app will take a few seconds and during that time I wanna show animation, not after.
iOS Launch screen can't animate. If startup time is an issue, and you want to show some animation, would need to write some "native code" (Xamarin.IOS is fine) that does an animation, while you have a background task do Xamarin Forms Init and load App ResourceDictionary. Details TBD, if someone demonstrates that they actually have a serious iOS load-time problem with Xamarin Forms.
OP (Original Poster) tested the time on iPhone, and concluded that it was fast enough to not be worth doing an animation to make that time more interesting. (On typical Android devices the startup time was longer.)
I have created a HoloLens app using Unity 3D. In the app I want to show a text canvas with some animation on click of a button. I have done this with Animator control and script to open an Animation state on click of a button. This is working fine when I try on Unity Preview. However when I try the same app on HoloLens emulator or on device the animation doesn't work. The canvas opens up simply without any animation after some delay (I think delay of animation to be completed). This is not the case for Unity Game Preview.
Please let me know what else we do to support Animations made in Unity on HoloLens.
I have fixed the issue. Not sure what was the exact problem but the cube object was mashed off as added some components, which might not actually needed.
Freshly re-designing the cube and animations worked.
I got this app im been working on i xamarin forms. where i use a ContantPages inside a navigationspage. like shown below
MainPage = new NavigationPage(new SwipePage());
Now when i navigate to a other page like shown below, sometimes the screen goes black. If i then tap out of the app, and then tap in the app, the black screen will disappear, an the page content would be showing. making the app normally again.
this.Navigation.PushAsync(new ProfilPage());
I been trying to see if it's curse i load more data en app start, then resume. but i don't. its getting the same amount of load on resume, as on start.
So do anyone have a idea what it can be, or have tried something similar before?
Thanks for your time,
---UPDATE---
So In a emulator it runs without problems. but when i use a android device IRL it's keep doing that black screen thing.
I think this is occurring because you are not awaiting the async method thus showing a black screen as the page is still rendering but you have already been pushed to the page.
Try using the await operator.
var page = new SwipePage();
await Navigation.PushAsync(page);
I would just like to know of something is possible as I am very new to Xamarin and I am on a time limit for an assignment. I don't mind some trial and error, but don't want to waste the time if it isn't possible
I want to have an animated gif as an activity indicator (it is a logo).
I have it working in a WebView - is it possible, in Xamarin,Forms to have this appear as an overlay while waiting on long running methods?
For example. if user clicks on a button, the app gets some info from a webservice then displays in a page. While waiting I would like to show the webview (or any other way to show an animagted gif).
So I am not asking for the code, but just if it is posible.
Thanks in advance
I was able to work this out
With the animated(loading) gif running in the WebView page I called a couple of async methods using following
await Task.WhenAll(method1(), method2());
await Navigate.PushAsync(new NextPage(var1, var2));
The laoding gif (which is an animated logo) runs until the tasks are complete then navigates to the next page
Using an ImageView apparently this doesn't look like its possible to playback animated Gif's as can be seen here http://forums.xamarin.com/discussion/17448/animated-gif-in-image-view.
So i very much doubt the ActivityIndicator would, if it could. In the ActivityIndicator I can't see any functionality to change the content of the what is shown when it is busy.
You could always create your own animated image view by creating a custom renderer instead however. It isn't particularly hard to cycle images at pre-determined gaps if you have a list of the images split up.
GIF images can be used in Xamarin forms to show custom activity indicator, since in Xamarin forms it is not possible to show GIF images directly web-view must be used. For android image must be placed inside assets folder and Build Action must be set to AndroidAsset. For iOS image must be placed inside resources and Build Action must be set to BundleResource. AbsoluteLayout can used for placing the image to center, IsBusy property of mvvm helpers nuget can used for controlling the visibility of the activity indicator. Dependency service must used for getting the image path. You can check this https://github.com/LeslieCorrea/Xamarin-Forms-Custom-Activity-Indicator for example.
Xamarin.Forms now supports .GIF, from version 4.4-pre3 and up on iOS, Android and UWP. Before using, first add the .GIF to the platforms projects, or as an embedded resource in the shared project and then use it like a regular image. The API on the Image control has been extended with the IsAnimationPlaying bindable property.
For e.g., loader.gif is added in all platform projects, then below code make it animating.
<Image Source="loader" IsAnimationPlaying="True" WidthRequest="36" HorizontalOptions="CenterAndExpand" VerticalOptions="CenterAndExpand" />
I have written a windows phone application. When the application starts up it shows the splash screen which is cool and i can change the image. But is there a way to add a loading animation like those dots moving across the screen.
It would be nice if i can add one of those animation in the splash screen. Can it be done. if yes please add in your answers.
As of right now there is no way to replace the loading image that shows up with an animation. Although there are workarounds:
Remove the image all together. Might want to be careful though because Microsoft requires that the application show some kind of feedback to the user within a few seconds of launching the app. Use this only if your app loads really fast.
Display a snap shot of the loading screen as an image so when the app does load you can show an animation with the same background image and it appears that its the same loading screen.
In your case I would recommend using a popup control with a loading animation inside (Option 2). To learn how to create a popup go here. Or if you want a well documented popup I know telerik has there own version as well.
Next place the loading message in a textblock or put your own image and animation inside of the popup. Obviously the easiest animation would be to use the Performance Progress Bar in the silverlight toolkit.
Now what you'll want to do is set the popup opened by default. Whenever your processing is done all you have to do is set the popup visibility to hidden in your C# code.
Some examples of how this is implemented can be found here:
Creating a Splash Screen
Creating an Animated Splash Screen
All About Splash Screens
And here's an example for an XNA game:
Creating a Splash Screen for your XNA game