Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 下载程序时的动画_C#_Android_Visual Studio_Xamarin_Xamarin.forms - Fatal编程技术网

C# 下载程序时的动画

C# 下载程序时的动画,c#,android,visual-studio,xamarin,xamarin.forms,C#,Android,Visual Studio,Xamarin,Xamarin.forms,在这里我搞不懂动画。加载程序时需要实现动画,以及单个屏幕状态的动画转换,如何实现此帮助? 如果您正在与Xamarin合作,请查看。您可以轻松创建矢量图形并设置动画。这里是一个简单的加载动画。这是你需要的吗: 自定义ShowLoading.cs界面: public interface ShowLoading { void Show(); void Hide(); } [assembly: Dependency(typeof(MainActivity))] namespace Ap

在这里我搞不懂动画。加载程序时需要实现动画,以及单个屏幕状态的动画转换,如何实现此帮助?

如果您正在与Xamarin合作,请查看。您可以轻松创建矢量图形并设置动画。

这里是一个简单的加载动画。这是你需要的吗:

自定义ShowLoading.cs界面:

public interface ShowLoading
{
    void Show();
    void Hide();
}
[assembly: Dependency(typeof(MainActivity))]
namespace App18.Droid
{
[Activity(Label = "App18", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity,ShowLoading
{
    private  static Dialog _dialog;
    public void Hide()
    {
        _dialog.Dismiss();

    }

    public void Show()
    {
        _dialog.Show();
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());
        init();
    }

    private void init()
    {
        View view = LayoutInflater.From(this).Inflate(Resource.Layout.loading_layout,null);
        _dialog = new Dialog(this);
        _dialog.RequestWindowFeature((int)WindowFeatures.NoTitle);
        _dialog.SetCancelable(false);
        _dialog.SetContentView(view);
    }
}
然后在.Android MainActivity.cs中实现界面:

public interface ShowLoading
{
    void Show();
    void Hide();
}
[assembly: Dependency(typeof(MainActivity))]
namespace App18.Droid
{
[Activity(Label = "App18", Icon = "@mipmap/icon", Theme = "@style/MainTheme", MainLauncher = true, ConfigurationChanges = ConfigChanges.ScreenSize | ConfigChanges.Orientation)]
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity,ShowLoading
{
    private  static Dialog _dialog;
    public void Hide()
    {
        _dialog.Dismiss();

    }

    public void Show()
    {
        _dialog.Show();
    }

    protected override void OnCreate(Bundle savedInstanceState)
    {
        TabLayoutResource = Resource.Layout.Tabbar;
        ToolbarResource = Resource.Layout.Toolbar;

        base.OnCreate(savedInstanceState);
        global::Xamarin.Forms.Forms.Init(this, savedInstanceState);
        LoadApplication(new App());
        init();
    }

    private void init()
    {
        View view = LayoutInflater.From(this).Inflate(Resource.Layout.loading_layout,null);
        _dialog = new Dialog(this);
        _dialog.RequestWindowFeature((int)WindowFeatures.NoTitle);
        _dialog.SetCancelable(false);
        _dialog.SetContentView(view);
    }
}
}

加载布局。axml

<?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:layout_height="match_parent"
  android:id="@+id/frame"
 >

  <ProgressBar
    android:id="@+id/loading"
    android:layout_width="30dp"
    android:layout_height="30dp"
    android:layout_centerInParent = "true"
    android:indeterminateBehavior="repeat"
    android:indeterminateDrawable="@drawable/loading" />
</RelativeLayout>

load.xml(在参考资料/drawable中):


您可以在页面中通过DependencyService调用它,如下所示:

//show the loadig animation
DependencyService.Get<ShowLoading>().Show();

//hide it
DependencyService.Get<ShowLoading>().Hide();
//显示loadig动画
DependencyService.Get().Show();
//藏起来
DependencyService.Get().Hide();

如果您只是想要这样的东西,您可以看看如何在XAML中旋转控件:不,我不需要启动启动动画,例如启动时的照片。它需要在Xamarin上实现,而不是在Javai上实现。我已经更新了答案,在Xamarin.Forms中,您可以通过DependencyService实现它