我在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;
}
请提供任何建议。提前致谢。 我有这样的要求
答案 0 :(得分:0)
请使用分配跟踪器(Windows - &gt;显示视图 - &gt;其他 - &gt; Android - &gt;分配跟踪器)重复这些步骤,并找出不同对象的内存分配。
主要原因可能是由于您在创建GridView时自定义视图的布局,并且在运行时您将创建图库的图像的缩略图。我们可能必须创建一次具有最少数量的图像的网格视图。