Android开发:seekbar倒计时!
是否可能,如果是,如何,如何在用户不做任何操作的情况下从进度100变为1 类似于每.05秒seekbar.setProgress(-=1) 因此,如果用户不做任何操作,seekbar将下降,直到达到1 请告诉我怎么做Android开发:seekbar倒计时!,android,Android,是否可能,如果是,如何,如何在用户不做任何操作的情况下从进度100变为1 类似于每.05秒seekbar.setProgress(-=1) 因此,如果用户不做任何操作,seekbar将下降,直到达到1 请告诉我怎么做 谢谢大致如下(注意:可能无法编译): 您可能被迫编写自己的进度条。下面是一个例子: 实现这一点的方法不止一种…类异步扩展异步任务{ class Async extends AsyncTask<Void, Integer, Void>{ ProgressDial
谢谢大致如下(注意:可能无法编译):
您可能被迫编写自己的进度条。下面是一个例子: 实现这一点的方法不止一种…
类异步扩展异步任务{
class Async extends AsyncTask<Void, Integer, Void>{
ProgressDialog dialog;
public Async(Context ctx) {
dialog = new ProgressDialog(ctx);
dialog.show();
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
dialog.incrementProgressBy(1);
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
dialog.dismiss();
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
int i=0;
while (i < 1000) {
publishProgress(1);
i++;
}
return null;
}
}
进程对话;
公共异步(上下文ctx){
dialog=新进度对话框(ctx);
dialog.show();
}
@凌驾
受保护的void onProgressUpdate(整型…值){
//TODO自动生成的方法存根
对话框。递增进度(1);
super.onProgressUpdate(值);
}
@凌驾
受保护的void onPostExecute(void结果){
//TODO自动生成的方法存根
dialog.dismise();
super.onPostExecute(结果);
}
@凌驾
受保护的Void doInBackground(Void…参数){
//TODO自动生成的方法存根
int i=0;
而(i<1000){
出版进度(1);
i++;
}
返回null;
}
}
出现错误,我想不出原因。你从哪里得到密码的。你有链接吗?@carefacerz我从一个正在进行0到100屏幕加载的应用程序中取出了它。我刚把柜台倒过来。请看我在gamedev上的示例:我在Progress View-1下提供了教程,只是因为您没有使用asynctask,而是用一堆代码编写了60行代码runnables@Falmarri你想提供一个更好的例子吗?我想在这里学习,我只是分享了我以前的发现,我认为布莱恩·丹尼在路上有所收获。如果你能帮我写代码的话。谢谢你发这个帖子。为了学习:如果我没有使用ProgressDialog,而是在活动的视图上有一个ProgressBar呢?嗯,这真的没有任何意义。不使用asynctask,您只需调用您的活动。您可以在视图中设置进度条,然后将对话框设置为显示该视图。为了澄清,我的意思是,如果它是这样设置的:我有一个带有进度条的加载屏幕。我弹出堆栈中的内容,将位图、声音等加载到内存中。我是否应该考虑将它转换为异步任务,就像您所说的那样,还是将它与手动线程一样?(我想我应该问一个问题)这取决于你想要什么。如果你在不同的线程中做所有的背景工作,你可能会考虑做手动线程。如果您只是在单个线程中加载所有内容,只需使用asynctask并将其全部放入doInBackground()中,然后在每个函数之后更新进度。
class Async extends AsyncTask<Void, Integer, Void>{
ProgressDialog dialog;
public Async(Context ctx) {
dialog = new ProgressDialog(ctx);
dialog.show();
}
@Override
protected void onProgressUpdate(Integer... values) {
// TODO Auto-generated method stub
dialog.incrementProgressBy(1);
super.onProgressUpdate(values);
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
dialog.dismiss();
super.onPostExecute(result);
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
int i=0;
while (i < 1000) {
publishProgress(1);
i++;
}
return null;
}
}