在Xamarin Forms中使用Acr.UserDialog中的GIF动画

时间:2016-11-16 12:57:25

标签: c# mobile xamarin loading gif

我正在使用Acr.UserDialog包向我的应用添加加载'屏幕',我正在使用Xamarin Forms进行开发。我在某种程度上使用它:

var loading = UserDialogs.Instance.Loading("Carregando", null, null, true, MaskType.Gradient);

loading.Show();
(...)
loading.Hide();

工作正常。但是,我需要在此加载'屏幕'中添加动画Gif。有可能这样做吗?如果是这样,我该怎么办?这与Android和IO的过程相同吗?

提前谢谢!

1 个答案:

答案 0 :(得分:2)

尝试使用WebView获得效果。它适用于所有平台。 首先需要为动画编写一个Xml文件。 这是我的Xml文件示例:

   <?xml version="1.0" encoding="utf-8"?>
   <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
         android:orientation="vertical"
         android:layout_width="match_parent"
         android:layout_height="match_parent"
         >

   <WebView
         android:id="@+id/webLoadingIcon"
         android:layout_width="44dp"
         android:layout_height="44dp"
         android:layout_gravity="center_horizontal|center_vertical"
         android:layout_marginTop="120dp"
         android:background="#00000000"
         />

   </LinearLayout>

“webLoadingIcon”表示您要使用的.gif照片的名称。 然后创建一个方法,使用并加载屏幕上的.gif照片。 这是一个示例:

   void LoadAnimatedGif()
   {
        webLoadingIcon = currentView.FindViewById<WebView>(Resource.Id.webLoadingIcon);
        // expects to find the 'loading_icon_small.gif' file in the 'root' of the assets folder, compiled as AndroidAsset.
        webLoadingIcon.LoadUrl(string.Format("file:///android_asset/loading_icon_small.gif"));
        // this makes it transparent so you can load it over a background
        webLoadingIcon.SetBackgroundColor(new Color(0,0,0,0));
        webLoadingIcon.SetLayerType(LayerType.Software, null);
   }
希望我帮助你一点点! :)