Android:动态设置ImageView?

时间:2011-04-15 12:15:22

标签: android layout dynamic imageview android-linearlayout

我正在尝试下载图像,并动态创建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后刷新布局?你如何“刷新”?

3 个答案:

答案 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