在图库项目中单击如何显示图像视图和网格视图?

时间:2012-07-23 12:43:53

标签: android image gridview gallery

我在Android应用程序中有一个库,当我点击图库项目时我想显示图像和网格视图。当我在图库中只有三个图像并点击它正确显示时,我就完成了。但是现在我在画廊中有七个图像,每个画廊项目都有四个图像来显示图库。在这里我只使用了一些drwawable图像。这时我得到了一个例外,如Java.lang.OutOfMemory
我使用下面的代码

   public ImageThemeAdapter(Context c, Integer[] mImageIds) {
     imagesId=mImageIds;
     bitmap=new Bitmap[imagesId.length];
     mContext = c;
     TypedArray ta=obtainStyledAttributes(R.styleable.Gallery1);
        imageBackground=ta.getResourceId(R.styleable.Gallery1_android_galleryItemBackground, 1);
        ta.recycle();
        for (int i = 0; i <imagesId.length; i++) {
           bitmap[i]=BitmapFactory.decodeResource(mContext.getResources(),imagesId[i]);
        }
    }

    public int getCount() {
        return bitmap.length;
    }

    public Object getItem(int position) {
        return bitmap[position];  
    }

    public long getItemId(int position) {
        return position;
    }

    public View getView(int position, View convertView, ViewGroup parent) {   

        ImageView i = new ImageView(mContext);

        i.setImageBitmap(bitmap[position]);
        i.setScaleType(ImageView.ScaleType.FIT_XY);
        i.setLayoutParams(new Gallery.LayoutParams(130, 120));
       // i.setLayoutParams(new Gallery.LayoutParams((ScreenWidth*80)/100, android.view.ViewGroup.LayoutParams.WRAP_CONTENT));
        i.setBackgroundResource(imageBackground);
        return i;   
    }

请提供任何建议。提前致谢。 我有这样的要求 gallery and grid view

1 个答案:

答案 0 :(得分:0)

请使用分配跟踪器(Windows - &gt;显示视图 - &gt;其他 - &gt; Android - &gt;分配跟踪器)重复这些步骤,并找出不同对象的内存分配。

主要原因可能是由于您在创建GridView时自定义视图的布局,并且在运行时您将创建图库的图像的缩略图。我们可能必须创建一次具有最少数量的图像的网格视图。