2012-06-14 41 views
3

我在启动时有一个启动画面。用下面的编码如何使用进度条实现启动画面? - android

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(); 
}} 

现在我只想一个水平进度条添加到上面溅活动说在屏幕的底部.. 所以作为闪屏同时显示进度条应该载入当它结束时,下一个活动应该出现。

搜索进度条上的几个例子,但无法做到我想要的。有一个带有对话框的进度条的例子很多。但在这里我不想要任何对话框。我只需要在我的启动画面上显示一个简单的水平进度条

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

+3

不要为了它而使用“闪屏”。至少在执行耗时的任务时可能会使用“启动画面”,但即使这样,通常也是不必要的。据我所知,除了延迟用户访问您的应用程序5秒之外,您的服务目的不是其他目的。用户体验不佳。看到这个博客为什么... http://android.cyrilmottier.com/?p = 632 – Squonk

+0

你知道如何衡量加载进度?如果每10%左右无法更新,进度条毫无意义。 –

+0

我在下面的链接中回答了这个问题。 https://stackoverflow.com/a/45020909/4896539 –

回答

7

在这里,你走了,写了一个教程如何创建一个进度条闪屏:

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

基本上代替你的线程启动了一个ASyncTask,你将一个对progressSpinner的引用传递给ASyncTask,当线程正在下载资源(或者你想要做的任何事情)时,它会更新它。

+0

好教程.. :) – kumareloaded

+0

该链接提供了一个非常好的教程!感谢那。 – winklerrr

+0

您提供的链接不起作用。 – Jack

0

这个XML例子创建水平进度:

<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" />