1

所以我试图从网上加载一堆缩略图(可能高达 100+),我似乎在模拟器上的内存不足 30 左右,手机本身的内存在 80-85 左右。

这是行不通的,但必须有一种方法-

我什至尝试将图像保存到缓存内存并从那里加载,但它仍然内存不足。

加载大量网络缩略图的正确方法是什么?

每张图片大约 50 kb,我基本上是通过我制作的名为 CreateImage 的方法动态添加 imageViews。这几乎可以根据 URL 和图像名称加载每个缩略图,并将其设置在 Horizo​​ntalScollView 中的动态 imageView 中。

    private void createImages(String URL, String imageName){
    ImageView ImageThumbnails = new ImageView(this);
    ImageThumbnails.setId(ImageThumbName);
    ImageThumbnails.setLayoutParams(new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT)); 
    ImageThumbnails.getLayoutParams().height = 85;
    ImageThumbnails.getLayoutParams().width = 85;
    ImageThumbnails.setPadding(4, 4, 4, 4);
    ImageThumbnails.setScaleType(ImageView.ScaleType.FIT_XY);
    ImageThumbnails.setOnClickListener(this);


    String path = Environment.getExternalStorageDirectory()+ "/" + imageName;
    File imgFile = new File(path);
    if(imgFile.exists())
    {
      Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
      Bitmap bmpCompressed = Bitmap.createScaledBitmap(myBitmap, 85, 85, true);
      ImageThumbnails.setImageBitmap(bmpCompressed);

    }

    ll.addView(ImageThumbnails);
}

提前致谢,

4

3 回答 3

0

您应该阅读 Android 门户上的那些文章,这些文章准确地解释了如何做到这一点并提供代码:

显示位图:http: //developer.android.com/training/displaying-bitmaps/index.html

加载大位图:http: //developer.android.com/training/displaying-bitmaps/load-bitmap.html

于 2012-12-07T03:05:07.503 回答
0

使用 AsyncTask 单独下载每个图像并将其保存到磁盘(单独)。这就是我为杂志应用程序制作 30 多张图片所做的。

于 2012-12-07T03:05:51.770 回答
0

我认为您的问题将得到解决lazy list adapter。试试这个例子LazyList

于 2012-12-07T03:06:02.233 回答