[ad_1]
The above header refers.
The .gif animation (which is about 2 seconds) hardly shows in any respect within the splash display screen earlier than it will get to the login display screen.
That is my SplashLayout.xaml:
<?xml model="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
>
<com.felipecsl.gifimageview.library.GifImageView
android:id="@+id/myGIFImage"
android:layout_gravity="heart"
android:scaleType="fitCenter"
android:layout_width="match_parent"
android:layout_height="match_parent" />
</LinearLayout>
That is my Splash_Activity.cs:
utilizing AbuseAlert.Droid;
utilizing Android.App;
utilizing Android.OS;
utilizing Felipecsl.GifImageViewLibrary;
utilizing System.IO;
namespace Abuse_Alert.Droid
{
[Activity(Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true,
Label = "AbuseAlert")]
public class SplashActivity : Exercise
{
GifImageView myGIFImage;
protected override void OnCreate(Bundle savedInstanceState)
{
base.OnCreate(savedInstanceState);
SetContentView(Useful resource.Format.SplashLayout);
System.Threading.ThreadPool.QueueUserWorkItem(o => LoadActivity());
}
personal void LoadActivity()
{
//System.Threading.Thread.Sleep(2000); // Simulate a protracted pause
//
RunOnUiThread(() => StartActivity(typeof(MainActivity)));
}
public override void OnWindowFocusChanged(bool hasFocus)
{
myGIFImage = FindViewById<GifImageView>(Useful resource.Id.myGIFImage);
// From Drawable
Stream enter = Sources.OpenRawResource(Useful resource.Drawable.AbuseAlert);
// It is best to convert the "enter" into Byte Array
byte[] bytes = ConvertByteArray(enter);
myGIFImage.SetBytes(bytes);
myGIFImage.StartAnimation();
}
personal byte[] ConvertByteArray(Stream enter)
{
byte[] buffer = new byte[16 * 1024];
utilizing MemoryStream ms = new MemoryStream();
int learn;
whereas ((learn = enter.Learn(buffer, 0, buffer.Size)) > 0)
ms.Write(buffer, 0, learn);
return ms.ToArray();
}
}
}
That is my MainActivity.cs
utilizing System;
utilizing Android.App;
utilizing Android.Content material.PM;
utilizing Android.Runtime;
utilizing Android.OS;
utilizing AndroidX.Core.App;
utilizing AndroidX.Core.Content material;
utilizing MediaManager;
utilizing Android;
utilizing LibVLCSharp.Kinds.Shared;
utilizing Android.Content material;
utilizing System.Threading.Duties;
utilizing Xamarin.Kinds;
utilizing Android.Gms.Extensions;
utilizing Plugin.Toast;
[assembly: Dependency(typeof(FirebaseAuthenticator))]
namespace AbuseAlert.Droid
{
[Activity(Label = "AbuseAlert", Icon = "@drawable/icon", Theme = "@style/MainTheme",
MainLauncher = false, ConfigurationChanges = ConfigChanges.ScreenSize |
ConfigChanges.Orientation)]
public class MainActivity :
international::Xamarin.Kinds.Platform.Android.FormsAppCompatActivity
{
public occasion EventHandler<ActivityResultEventArgs> ActivityResult = delegate { };
protected override void OnCreate(Bundle savedInstanceState)
{
TabLayoutResource = Abuse_Alert.Droid.Useful resource.Format.Tabbar;
ToolbarResource = Abuse_Alert.Droid.Useful resource.Format.Toolbar;
base.OnCreate(savedInstanceState);
CrossMediaManager.Present.Init(this);
LibVLCSharpFormsRenderer.Init();
Xamarin.Necessities.Platform.Init(this, savedInstanceState);
international::Xamarin.Kinds.Kinds.Init(this, savedInstanceState);
LoadApplication(new App());
if (ContextCompat.CheckSelfPermission(this, Manifest.Permission.RecordAudio) != Permission.Granted)
{
ActivityCompat.RequestPermissions(this, new String[] { Manifest.Permission.RecordAudio }, 1);
}
FormsVideoPlayer.Init();
}
public override void OnRequestPermissionsResult(int requestCode, string[] permissions, [GeneratedEnum] Android.Content material.PM.Permission[] grantResults)
{
Xamarin.Necessities.Platform.OnRequestPermissionsResult(requestCode, permissions, grantResults);
base.OnRequestPermissionsResult(requestCode, permissions, grantResults);
}
protected override void OnActivityResult(int requestCode, Consequence resultCode, Intent knowledge)
{
ActivityResult(this, new ActivityResultEventArgs
{
RequestCode = requestCode,
ResultCode = resultCode,
Information = knowledge
});
}
}
So, what’s inflicting my .gif file (AbuseAlert.gif) which is already within the sources/drawable folder to not render correctly?
[ad_2]
