问题描述
- 加载图像来显示加载的进度
-
我使用下面的函数来显示图像:Bitmap imageBitmap = loadBitmap(URL);
loadBitmap()如下:
private Bitmap loadBitmap(String url) { try { Bitmap bm = BitmapFactory.decodeStream((InputStream)this.fetch(url)); return bm; } catch(Exception e) { e.printStackTrace(); return null; } }
fetch() :
public Object fetch(String address) { try { URL url = new URL(address); Object content = url.getContent(); return content; } catch(Exception e) { e.printStackTrace(); } return this; }
在加载的时候我想显示加载进度或一个 load.png。并且在图像加载结束时候显示。如何实现? 我想创建函数 ProgressDialog,但是如何使用呢?
解决方案
你可以使用 AsyncTask 在 PreExecute() 方法中显示 Progress Dialog,然后在 PostExecute() 方法中隐藏。
ProgressDialog prog = new ProgressDialog(this); // Create Progress Dialog
private class DownloadBitmap extends AsyncTask<Void, Integer, Void>{
@Override
protected void onPreExecute() {
// TODO Auto-generated method stub
super.onPreExecute();
//Display progressDialog before download starts
prog.show();
}
@Override
protected void onPostExecute(Void result) {
// TODO Auto-generated method stub
super.onPostExecute(result);
prog.hide(); //Hide Progress Dialog else use dismiss() to dismiss the dialog
}
@Override
protected Void doInBackground(Void... params) {
// TODO Auto-generated method stub
/*
* Perform download and Bitmap conversion here
*
*/
return null;
}
}
再通过下面代码来调用 AsyncTask。
DownloadBitmap dd = new DownloadBitmap();
dd.execute();
解决方案二:
fetch先写,执行完结束后让load.png消失或者dialog消失
然后在BitmapFactory.decode
解决方案三:
fetch先写,执行完结束后让load.png消失或者dialog消失
然后在BitmapFactory.decode.....
时间: 2024-09-14 22:02:29