我正在尝试下载图像,并动态创建ImageView并将其添加到我的布局中,但它不会显示图像。这是我的代码:
ImageView image = new ImageView(this);
LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
image.setLayoutParams(vp);
image.setScaleType(ImageView.ScaleType.CENTER_CROP);
image.setMaxHeight(50);
image.setMaxWidth(50);
image.setImageDrawable(avatar);
theLayout.addView(image);
也许我需要在添加ImageView后刷新布局?你如何“刷新”?
答案 0 :(得分:4)
尝试以下代码,您无需刷新。将您的图片网址放入inputurl
变量。
InputStream is = null;
String inputurl = " Enter url of ur image ";
try {
URL url = new URL(inputurl);
Object content = url.getContent();
is = (InputStream) content;
avatar = Drawable.createFromStream(is,"src");
} catch (MalformedURLException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
ImageView image = new ImageView(this);
LinearLayout.LayoutParams vp = new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
image.setLayoutParams(vp);
image.setScaleType(ImageView.ScaleType.CENTER_CROP);
image.setMaxHeight(50);
image.setMaxWidth(50);
image.setImageDrawable(avatar);
theLayout.addView(image);
答案 1 :(得分:1)
我认为你必须为vp
定义参数如果您将定义参数,它将显示图像,如 -
LinearLayout.LayoutParams Params=new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
Params.setMargins(0,0,0,0);
Params=new LinearLayout.LayoutParams(LayoutParams.FILL_PARENT,LayoutParams.WRAP_CONTENT);
答案 2 :(得分:0)
您可以使用其他线程下载图像,下载完成后,您可以使用处理程序更新drawable。您可以在文档中看到如何创建另一个线程。这似乎并不容易,但如果你想构建更具响应性的Android应用程序,那么学会如何做更好。
(标题)带有第二个线程的ProgressDialog示例 http://developer.android.com/guide/topics/ui/dialogs.html