【问题标题】:How to implement a splash screen with a progress bar? - android如何实现带有进度条的启动画面? - 安卓
【发布时间】:2012-06-17 22:46:32
【问题描述】:

我在启动时有一个启动画面。使用以下编码

public class Splash extends Activity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.splash);
    Thread logoTimer = new Thread(){
        public void run(){
            try{
                int logoTimer = 0;
                while (logoTimer<5000){
                    sleep(100);
                    logoTimer=logoTimer+100;
                     }
                startActivity(new Intent("com.package.MAIN"));
        } catch (InterruptedException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
            finally{
                finish();
            }
        }
    };
    logoTimer.start();
}}

现在我只想在屏幕底部的上述启动活动中添加一个水平进度条所以当启动屏幕同时出现时,进度条应该加载并且当它完成时,应该会出现下一个活动。

在进度条上搜索了几个示例,但无法执行我想要的操作。有很多带有对话框的进度条示例。但在这里我不想要任何对话框。我只需要一个简单的水平进度条在我的初始屏幕上。

那么有人可以帮助我完成所需的编码和东西吗?请! :)

【问题讨论】:

  • 不要仅仅为了它而使用“启动画面”。至少在执行一项耗时的任务时可能会使用“启动画面”,但即便如此,它们通常也是不必要的。据我所知,除了将用户对您的应用程序的访问延迟 5 秒之外,您的任何目的都没有。对用户体验不好。请参阅此博客了解原因...android.cyrilmottier.com/?p=632
  • 你知道如何衡量加载进度吗?如果您不能每 10% 左右有意义地更新进度条,那么它就毫无意义。
  • 我在下面的链接中回答了这个问题。 stackoverflow.com/a/45020909/4896539

标签: java android timer progress-bar splash-screen


【解决方案1】:

你去,写了一个教程如何创建一个带有进度条的SplashScreen:

http://blog.blundellapps.com/tut-splashscreen-with-progress-bar/

基本上,它会启动 ASyncTask,而不是您的线程,而是将您的 progressSpinner 的引用传递给 ASyncTask,这将在线程正在下载资源(或您想做的任何事情)时更新它

【讨论】:

  • 这些天你最好使用像可取消协程这样的东西,范围为视图模型,这样如果你的应用程序在启动画面期间退出,它不会在后台任务完成时重新打开。
【解决方案2】:

这个 XML 示例将创建一个水平 ProgressBar:

<ProgressBar
    android:id="@+id/progress_bar"
    style="@android:style/Widget.ProgressBar.Horizontal"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:progress="0" />

【讨论】:

    猜你喜欢
    • 2022-08-19
    • 2010-11-26
    • 2014-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-05
    相关资源
    最近更新 更多