Android 如何创建带有百分比进度条的启动屏幕?
我想在开始时通过进度条显示我的应用程序的启动屏幕,其中包含应用程序的Android 如何创建带有百分比进度条的启动屏幕?,android,Android,我想在开始时通过进度条显示我的应用程序的启动屏幕,其中包含应用程序的actualload% 我有以下要求/疑问- 我应该使用哪个组件来显示进度条 如果启动屏幕本身是应用程序的一部分,如何计算%负载 触摸启动屏幕时,我想突出显示进度条 您可以创建线程,也可以使用异步任务和创建自定义进度条 asynctask示例(仅伪代码) 私有类SplashLoading扩展了异步任务{ @凌驾 受保护的void onPreExecute(变量){ 在此处显示进度UI } @凌驾 受保护的长DOIN背景(可变){
actual
load%
我有以下要求/疑问-
您可以创建线程,也可以使用异步任务和创建自定义进度条 asynctask示例(仅伪代码)
私有类SplashLoading扩展了异步任务{
@凌驾
受保护的void onPreExecute(变量){
在此处显示进度UI
}
@凌驾
受保护的长DOIN背景(可变){
在这里完成繁重的任务,别忘了公布进度
}
@凌驾
受保护的void onProgressUpdate(变量){
在这里设置进度
}
@凌驾
受保护的void onPostExecute(变量){
完成后你会做什么?
}
}
我的asynctask伪代码由4个函数组成
您还可以添加onCancelled(),以防您想在任务取消时处理该问题,请尝试以下方法:我尝试了此方法,此方法没有错误
/**
* Async class to get News
*
*/
protected class AsynchTask extends AsyncTask<Void, Integer, Integer> {
@Override
protected void onPreExecute() {
}
@Override
protected Integer doInBackground(Void... args) {
download();
return 1;
}
private void download() {
// We are just imitating some process thats takes a bit of time
// (loading of resources / downloading)
int count = 10;
for (int i = 0; i < count; i++) {
// Update the progress bar after every step
int progress = (int) ((i / (float) count) * 100);
publishProgress(progress);
// Do some long loading things
try {
Thread.sleep(2000);
} catch (InterruptedException ignore) {
}
}
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
progressBar1.setProgress(values[0]);
}
@Override
protected void onPostExecute(Integer a) {
progressBar1.setVisibility(View.GONE);
}
}
/**
*获取新闻的异步类
*
*/
受保护的类AsynchTask扩展了AsynchTask{
@凌驾
受保护的void onPreExecute(){
}
@凌驾
受保护的整数doInBackground(Void…args){
下载();
返回1;
}
私有void下载(){
//我们只是在模仿一些需要一些时间的过程
//(资源加载/下载)
整数计数=10;
for(int i=0;i
到目前为止你做了些什么?如果你有一个应用程序需要足够长的时间才能加载,你可能会觉得需要一个启动屏幕,你应该重新考虑你的应用程序。首先,当你必须从服务器/网络下载数据时,启动屏幕会被进一步使用到你的应用程序中。并回答您的问题:要显示%负载,您必须知道可以计算和显示进度的总大小(kb/mb)。那么在你的情况下,你在闪屏上做什么呢?解释一下。还是只想显示虚拟的%负载?请解释一下,以便我们能帮忙。谢谢使用异步任务。
/**
* Async class to get News
*
*/
protected class AsynchTask extends AsyncTask<Void, Integer, Integer> {
@Override
protected void onPreExecute() {
}
@Override
protected Integer doInBackground(Void... args) {
download();
return 1;
}
private void download() {
// We are just imitating some process thats takes a bit of time
// (loading of resources / downloading)
int count = 10;
for (int i = 0; i < count; i++) {
// Update the progress bar after every step
int progress = (int) ((i / (float) count) * 100);
publishProgress(progress);
// Do some long loading things
try {
Thread.sleep(2000);
} catch (InterruptedException ignore) {
}
}
}
@Override
protected void onProgressUpdate(Integer... values) {
super.onProgressUpdate(values);
progressBar1.setProgress(values[0]);
}
@Override
protected void onPostExecute(Integer a) {
progressBar1.setVisibility(View.GONE);
}
}