使用来自网络的图像填充图库

时间:2012-06-13 07:15:46

标签: android

这里的教程http://www.edumobile.org/android/android-beginner-tutorials/creating-image-gallery/教授如何将资源中的图像放入图库

这是设置要显示的图像的部分:

private Integer[] mImageIds = {
            R.drawable.icon,
            R.drawable.icon,
            R.drawable.icon
    };

public View getView(int position, View convertView, ViewGroup parent) {
        ImageView i = new ImageView(mContext);
        i.setImageResource(mImageIds[position]);
        i.setLayoutParams(new Gallery.LayoutParams(150, 100));
        i.setScaleType(ImageView.ScaleType.FIT_XY);
        i.setBackgroundResource(mGalleryItemBackground);
        return i;
    }

但我希望从网上显示几张图片。所以这就是我所做的:

String gallery1 = "http://www.myimages.com/1.png";
URL ulrn = new URL(gallery1);
HttpURLConnection con = (HttpURLConnection)ulrn.openConnection();
InputStream is = con.getInputStream();
Bitmap bmp = BitmapFactory.decodeStream(is);

    if (null != bmp){
      bmp = getResizedBitmap(bmp,150,120);  //resize the thumb
      i.setImageBitmap(bmp);
      i.setLayoutParams(new Gallery.LayoutParams(150, 100));
      i.setScaleType(ImageView.ScaleType.FIT_XY);
      i.setBackgroundResource(mGalleryItemBackground);

但是使用我上面做的方法,我只能在图库中显示1张图片,因为我还需要在图库中显示其他图片,例如来自http://www.myimages.com/2.pnghttp://www.myimages.com/3.png。我怎么能这样做?

2 个答案:

答案 0 :(得分:1)

在这里您可以调用一次Image链接,但是Gallery baseAdapter类为每个项目调用getView。你需要每次都打电话。

为Url创建一个数组。喜欢

String [] URl = {http://www.myimages.com/2.png, http://www.myimages.com/,png,http://www.myimages.com/2.png};

并从您的getView方法调用此方法

   public Drawable ImageOperations(String imageurl) {
        try {
            InputStream is = (InputStream) new URL(imageurl).getContent();
            Drawable drawable = Drawable.createFromStream(is, "src");
            return drawable;
        } catch (MalformedURLException e) {
            return null;
        } catch (IOException e) {
            return null;
        }

    }

然后编辑getView方法的某些行。

i.setImageDrawable(ImageOperations(URl[position]));

由于

答案 1 :(得分:0)

使用下面的延迟加载列表视图链接代码,根据您的要求将列表视图更改为Gridview,它可能对您有所帮助。

Lazy Loading Listview