繁体   English   中英

开机画面动画

[英]Splash Screen Animation

我正在为Android编写应用程序,并希望制作动画启动画面

我做了这样的图像启动画面

Styles.xml:

 <resources>
  <style name="Theme.Splash" parent="android:Theme">
    <item name="android:windowBackground">@drawable/splash</item>
    <item name="android:windowNoTitle">true</item>
  </style>
</resources>

和SplashActivity:

[Activity(Theme = "@style/Theme.Splash", MainLauncher = true, NoHistory = true)]
public class SplashActivity : Activity
{
    protected override void OnCreate(Bundle bundle)
    {
        base.OnCreate(bundle);
        Thread.Sleep(10000); 
        StartActivity(typeof(Activity1));
    }
}

但是我有4张.png图像,我想制作动画启动画面。 我该怎么做?

使用动画列表 -在可绘制文件夹中创建xml,如下所示:

<animation-list xmlns:android="http://schemas.android.com/apk/res/android"
                android:oneshot="true">

        <item android:drawable="@drawable/image1" android:duration="200" />

        <item android:drawable="@drawable/image2" android:duration="200" />

        <item android:drawable="@drawable/image3" android:duration="200" />

</animation-list>

然后像这样开始动画:

ImageView your_imageView = (ImageView) findViewById(R.id.rocket_image);
your_imageView.setBackgroundResource(R.drawable.your_animation_list);
AnimationDrawable your_animation = (AnimationDrawable) your_imageView.getBackground();

your_animation.start(); // Start the animation

您可以使用FadeImageView类https://blog.xamarin.com/android-tricks-fadeimageview/延迟从一个图像过渡到另一个图像

包括FadeImageView作为本教程,并使用以下方式设置动画:

using Android.Views.Animations;

AlphaAnimation fadeIn;
AlphaAnimation fadeOut;

fadeIn = new AlphaAnimation (0, 1) {Duration = 500};
fadeOut = new AlphaAnimation (1, 0) {Duration = 500};

然后设置动画结束时发生的情况,例如调用更改图像的方法

EventHandler<Animation.AnimationEndEventArgs> callback = (s, e) => {
    StartAnimation (fadeOut);
    ChangePic ();

};
fadeIn.AnimationEnd += callback;

fadeimageview.SetImageBitmap(bitmap);
fadeimageview.StartAnimation (fadeIn);

对于ChangePic来说很简单:

private void ChangePic(){
   if (bitmapList.Count >= 1)
   {
      fadeimageview.SetImageBitmap(bitmapList[bitmapList.Count - 1]);
      bitmapList.RemoveAt[bitmapList.Count - 1];
      fadeimageview.StartAnimation (fadeIn);
   }
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM