gpt4 book ai didi

java - Android - 在等待来自 URL 的 ImageView 时显示进度对话框

转载 作者:行者123 更新时间:2023-11-29 05:42:01 24 4
gpt4 key购买 nike

我正在从 URL 加载 ImageView ,并希望在等待图像加载时显示进度对话框,当我运行应用程序时,进度对话框出现大约半秒钟然后消失并且与图像的状态。如何才能使进度对话框仅在加载图像后消失?

下面是我的代码

//below is the download image task****************************************

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;

public DownloadImageTask(ImageView bmImage) {
this.bmImage = bmImage;
}

protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}

protected void onPostExecute(Bitmap result) {
bmImage.setImageBitmap(result);
}
}

// above is the download imagetask ****************************************************

public class MyTask extends AsyncTask<Void, Void, Void> {
private ProgressDialog progress;

public MyTask(ProgressDialog progress) {
this.progress = progress;
}

public void onPreExecute() {
progress.show();
}

public void onPostExecute(Void unused) {

progress.dismiss();
}

@Override
protected Void doInBackground(Void... params) {
new DownloadImageTask((ImageView) findViewById(R.id.ivget))
.execute("http://dieboltdesigns.files.wordpress.com/2011/07/tom-brady-beast-poster-copy.png");

//above makes the progress bar
return null;
}
}

如果您需要 doinbackgound 方法/asynctask,请在评论中告诉我

谢谢

最佳答案

如果我没记错的话,问题是你在 AsyncTask 中使用了 AsyncTaskDownloadImageTask 是另一个独立于当前线程的线程。那就是问题所在。

只需在MyTask中记下DownloadImageTask的所有代码即可。

编辑

private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
ImageView bmImage;
ProgressDialog pd;
Context mContext;

public DownloadImageTask(Context context,ImageView bmImage) {
this.bmImage = bmImage;
mContext = context;
}

public void onPreExecute() {
pd = ProgressDialog.show(mContext, "dialog title","dialog message", true);
}

public void onPostExecute(Bitmap result) {
pd.dismiss();
if(result!=null)
bmImage.setImageBitmap(result);
}

protected Bitmap doInBackground(String... urls) {
String urldisplay = urls[0];
Bitmap mIcon11 = null;
try {
InputStream in = new java.net.URL(urldisplay).openStream();
mIcon11 = BitmapFactory.decodeStream(in);
} catch (Exception e) {
Log.e("Error", e.getMessage());
e.printStackTrace();
}
return mIcon11;
}
}

关于java - Android - 在等待来自 URL 的 ImageView 时显示进度对话框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17120393/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com