图库正在加载所有图像,但图库应一次加载一个图像

时间:2012-11-05 08:15:15

标签: android memory bitmap android-gallery

我创建了一个用于显示图像的图库,其中包括下一个和之前通过触摸转到的pinchzoom。我习惯访问https://github.com/kilaka/ImageViewZoom图书馆。我看到画廊首先上传所有图像,然后显示图像,这是很好的活动。但画廊可以上传最多4MB的图像,如果图像大小超过4MB,那么它会给我们Bitmap outofmemory错误。我已经习惯了bitmap.recycle()但它会回收所有图像。

在这里做任何事情,所以我的画廊从sdcard一个接一个地上传图片,当我将通过触摸转到下一个或上一个图像时,我的当前图像内存应该被删除。下一张图片应上传到图库内存中。所以我的画廊可以上传一些图片。

这是我的代码,此代码是来自访问https://github.com/kilaka/ImageViewZoom的链接: -

 gallery = new GalleryTouch(this);
       gallery = (GalleryTouch) findViewById(R.id.image);
       gallery.setSpacing(20);
       arrayAdapter = new ArrayAdapter<ImageView>(this, -1) {
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                bookM= position;        return getItem(position); 
                        }
        };

if(!(it.isEmpty() )) {
       Collections.sort(it); 
    for(int i=0; i<it.size();i++) {
            ImageViewTouch imageView = new ImageViewTouch(imageTouch.this);
            imageView.setLayoutParams(new Gallery.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT));
            final Options options = new Options();
            options.outHeight = (int) scaleHeight; 
            options.outWidth = (int) scaleWidth;   
            options.inScaled = true;
            options.inPurgeable = true;
            options.inSampleSize = 2;
            String photoURL = it.get(i);
            bitmap = BitmapFactory.decodeFile(photoURL,options);
            imageView.setImageBitmap(bitmap);
                arrayAdapter.add(imageView); 
        }
       gallery.setAdapter(arrayAdapter); 
        }

注意: - 在此代码中,“it”是List的变量;并列出了sd卡中的图像路径列表,如sdcard / images / one.jpg,sdcard / images / two.jpg ........等。

请高手帮帮我, 谢谢你的重要时刻。

0 个答案:

没有答案