如何实现带有进度条的启动画面? - 安卓
Posted
技术标签:
【中文标题】如何实现带有进度条的启动画面? - 安卓【英文标题】: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% 左右有意义地更新进度条,那么它就毫无意义。 我在下面的链接中回答了这个问题。 ***.com/a/45020909/4896539 【参考方案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_
android:layout_
android:progress="0" />
【讨论】:
以上是关于如何实现带有进度条的启动画面? - 安卓的主要内容,如果未能解决你的问题,请参考以下文章
js 代码实现视频进度条点到哪个位置就播放那个位置的视频。进度条是用css样式另做的。