java - 如何在后台加载 Activity 时显示带有动画的启动屏幕。 (安卓)

标签 java android android-animation splash-screen

MainActivity我的 Android 应用程序需要很长时间才能加载。所以,我想制作一个闪屏,它将显示到 MainActivity已完成加载,即: onCreate 的所有工作方法MainActivity完成后,必须关闭启动屏幕并显示 MainActivity推出。此外,启动屏幕上有一个动画。

启动屏幕的 onCreate 方法是:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_splash);
    ImageView imageView = (ImageView) findViewById(R.id.circle);
    final Animation startRotateAnimation = AnimationUtils.loadAnimation(this, R.anim.android_rotate_animation);
    startRotateAnimation.setRepeatCount(Animation.INFINITE);
    imageView.startAnimation(startRotateAnimation);

    new Handler().postDelayed(new Runnable() {

        @Override
        public void run() {

            Intent i = new Intent(SplashActivity.this, MainActivity.class);
            startActivity(i);
            // close this activity
            finish();
        }
    }, SPLASH_TIME_OUT);

}

SplashScreen将在 SPLASH_TIME_OUT 指定的时间后完成上面的代码,这是一个固定的积分常数。

android_rotate_animation.xml 是:

<rotate
xmlns:android="http://schemas.android.com/apk/res/android"
android:fromDegrees="0"
android:interpolator="@android:anim/linear_interpolator"
android:toDegrees="360"
android:pivotX="50%"
android:pivotY="50%"
android:duration="3000"
android:startOffset="0"
/>

我应该如何制作 SplashScreen 仅显示到 MainActivity 加载完成?

由于项目限制,我无法使用多个图像文件进行动画。

SplashScreen 的行为类似于加载屏幕。动画将在其上播放(如加载栏),直到 MainActivity 完成加载,之后 MainActivity 将启动。

最佳答案

要实现此目的,您可以将数据加载移至 SplashScreenActivity 并在加载数据时启动 MainActivity,或者将 Splash-View 移至 MainActivity,最初仅在其中显示 Splash-View,直到数据加载完毕。加载,然后隐藏该 View 或将其替换为 MainActivty 的实际 View 。

编辑我建议您使用 AsyncTask异步执行加载。您可以在其 onProgressUpdate() 方法中更新进度栏,工作完成后,在 onPostExecute() 中您可以隐藏进度栏并显示正常布局。

关于java - 如何在后台加载 Activity 时显示带有动画的启动屏幕。 (安卓),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42891585/

相关文章:

java - hibernate SessionFactory 不起作用

java - 在 O(1) 中返回数组中的随机数并创建单个排列的算法/函数

android - Gradle构建同步失败

android - ActionItem 的动画图标

android - 向 ListView 项添加动画

android - 翻译动画从屏幕开始而不是它所属的地方

java - 将英尺和英寸转换为英寸(多个输入转换为一个输入)

java - 从生产者到消费者的可靠文件移交

android - 如何在Kotlin中将list <String>转换为带有前缀和后缀的字符串

java - 如何安装JDK和JRE