Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/kotlin/3.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
在android应用程序启动时添加加载屏幕_Android_Android Applicationinfo - Fatal编程技术网

在android应用程序启动时添加加载屏幕

在android应用程序启动时添加加载屏幕,android,android-applicationinfo,Android,Android Applicationinfo,我的应用程序将在10秒内加载起始页。在10秒的时间内,android屏幕是空白的。 在此期间,我想添加加载屏幕。如何添加它? 在应用程序中告诉我如何知道起始页正在加载?并告诉我如何在我的应用程序中进行操作?您可以在第一次加载活动中使用闪屏,如下所示: @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setConte

我的应用程序将在10秒内加载起始页。在10秒的时间内,android屏幕是空白的。 在此期间,我想添加加载屏幕。如何添加它?
在应用程序中告诉我如何知道起始页正在加载?并告诉我如何在我的应用程序中进行操作?

您可以在第一次加载活动中使用闪屏,如下所示:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        Thread welcomeThread = new Thread() {

            @Override
            public void run() {
                try {
                    super.run();
                    sleep(10000);  //Delay of 10 seconds
                } catch (Exception e) {

                } finally {

                    Intent i = new Intent(SplashActivity.this,
                            MainActivity.class);
                    startActivity(i);
                    finish();
                }
            }
        };
        welcomeThread.start();
    }
希望此代码对您有所帮助。

使用ProgressDialog

ProgressDialog dialog=new ProgressDialog(context);
dialog.setMessage("message");
dialog.setCancelable(false);
dialog.setInverseBackgroundForced(false);
dialog.show();
只要用户界面准备好了数据,就隐藏它。电话:

dialog.hide();

如果应用程序在这10秒钟内没有做任何事情,这将形成一个糟糕的设计,只会让用户等待10秒钟什么也不做

如果出现这种情况,或者如果您希望实现10秒延迟启动屏幕,下面是代码:

ProgressDialog pd;
pd = ProgressDialog.show(this,"Please Wait...", "Loading Application..", false, true);
pd.setCanceledOnTouchOutside(false);
Thread t = new Thread()
{ 
      @Override
      public void run()
      {
                try
                {
                    sleep(10000)  //Delay of 10 seconds
                } 
        catch (Exception e) {}
        handler.sendEmptyMessage(0);
        }
} ;
t.start();

//Handles the thread result of the Backup being executed.
private Handler handler = new Handler()
{
    @Override
    public void handleMessage(Message msg) 
    {
        pd.dismiss();
        //Start the Next Activity here...

    }
};
编写代码:

  @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash);

        Thread welcomeThread = new Thread() {

            @Override
            public void run() {
                try {
                    super.run();
                    sleep(10000)  //Delay of 10 seconds
                } catch (Exception e) {

                } finally {

                    Intent i = new Intent(SplashActivity.this,
                            MainActivity.class);
                    startActivity(i);
                    finish();
                }
            }
        };
        welcomeThread.start();
    }

您可以创建自定义加载屏幕而不是启动屏幕。如果你在闪屏上显示10秒,这对用户体验不是一个好主意。因此,最好添加一个自定义加载屏幕。对于自定义加载屏幕,您可能需要一些不同的图像,使其感觉像gif。然后在
res
文件夹中添加图像,并创建如下类:-

public class LoadingScreen {private ImageView loading;

LoadingScreen(ImageView loading) {
    this.loading = loading;
}

public void setLoadScreen(){
    final Integer[] loadingImages = {R.mipmap.loading_1, R.mipmap.loading_2, R.mipmap.loading_3, R.mipmap.loading_4};
    final Handler loadingHandler = new Handler();
    Runnable runnable = new Runnable() {
        int loadingImgIndex = 0;
        public void run() {
            loading.setImageResource(loadingImages[loadingImgIndex]);
            loadingImgIndex++;
            if (loadingImgIndex >= loadingImages.length)
                loadingImgIndex = 0;
            loadingHandler.postDelayed(this, 500);
        }
    };
    loadingHandler.postDelayed(runnable, 500);
}}
private ImageView loadingImage;
在MainActivity中,您可以向LoadingScreen类传递如下:-

public class LoadingScreen {private ImageView loading;

LoadingScreen(ImageView loading) {
    this.loading = loading;
}

public void setLoadScreen(){
    final Integer[] loadingImages = {R.mipmap.loading_1, R.mipmap.loading_2, R.mipmap.loading_3, R.mipmap.loading_4};
    final Handler loadingHandler = new Handler();
    Runnable runnable = new Runnable() {
        int loadingImgIndex = 0;
        public void run() {
            loading.setImageResource(loadingImages[loadingImgIndex]);
            loadingImgIndex++;
            if (loadingImgIndex >= loadingImages.length)
                loadingImgIndex = 0;
            loadingHandler.postDelayed(this, 500);
        }
    };
    loadingHandler.postDelayed(runnable, 500);
}}
private ImageView loadingImage;
不要忘记在activity_main中添加ImageView。 之后,像这样调用LoadingScreen类

LoadingScreen loadingscreen = new LoadingScreen(loadingImage);
loadingscreen.setLoadScreen();
我希望这会对你有所帮助

克里斯·斯图尔特在那里写道:

闪屏只是浪费你的时间,对吧?作为一名安卓开发者, 当我看到闪屏时,我知道一些可怜的开发人员不得不添加 代码延迟三秒钟

然后,我必须盯着某张图片看三秒钟,直到我能看到为止 使用应用程序。每次发布时我都要这么做。我知道 我打开了哪个应用程序。我知道它的作用。就让我用吧

启动屏幕的正确方式

我相信谷歌并没有自相矛盾;老一套的建议和建议 这个新的站在一起。(尽管如此,使用它仍然不是一个好主意 浪费用户时间的启动屏幕。请不要这样做。)

然而,Android应用程序确实需要一些时间才能启动, 尤其是在冷启动时。那里有个耽搁,你可能不在 能够避免。为什么不在这段时间留下一个空白屏幕 不向用户展示一些好东西?这就是谷歌的做法 提倡。不要浪费用户的时间,但不要向他们显示空白, 第一次启动应用程序时,应用程序的未配置部分

如果你看一下谷歌应用程序的最新更新,你会发现它是合适的 启动屏幕的使用。看看YouTube应用程序,例如 例如


u可以使用全屏对话框,也可以使用闪屏。流程开始时显示对话框,结束时关闭对话框。我认为此链接将帮助您:。祝你好运你有没有考虑过一些虚假的数据,或者一些教程,一个10秒的splashscreen会破坏你的应用程序,会让用户非常沮丧:在这10秒内发生了什么?你的应用程序设计可能是错误的。假设你打开此应用程序,5秒后离开,然后再5秒后,应用程序再次显示,因为它启动了主要活动。当您离开应用程序/旋转屏幕等时,不要忘记以某种方式取消此操作。因此,所有需要花费的时间都发生在该活动中?如果是,那么如何创建一个封闭类,如我创建了一个名为SplashActivity的新类,但现在错误表明它不是封闭类…请帮助。。。对不起,我是Android的新手,这不完全正确。它没有考虑膨胀飞溅活动布局所需的时间,这将导致启动时(更短)的空白屏幕。请参见@yathavan answer.ps:通常最好取消()现在不推荐使用dialogProgressDialog。看这应该是被接受的答案。这里提到的所有其他东西都是垃圾。它不起作用。我不知道为什么在gradle buildIn中引起问题,将文章中的代码片段排列起来会有帮助