【发布时间】:2014-04-09 11:08:33
【问题描述】:
我正在尝试使用以下 asynctask 方法从 url 加载图像 (JPG)。
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);
}
}
我正在像这样在 onCreate 中执行这个方法
new DownloadImageTask((ImageView) findViewById(R.id.imageView1)).execute(final_url);
但是我看不到任何图像,当我调试它时,我发现mIcon11 的值为空。我做错了什么
PS : final_url 是这样的
www.website.com/somelink/IMG 005_153.JPG
【问题讨论】:
-
顺便说一句,您必须对您的网址进行编码,因为它有一个空格;),您在哪里执行此操作?在 onCreate?尝试在 oncreate 中初始化您的 ImageView 并将其作为全局值存储在您的活动中并将其传递给您的任务
-
猜这就是问题所在。你能告诉我一种方法吗?
标签: android android-asynctask android-imageview