【发布时间】:2015-03-09 10:21:39
【问题描述】:
当我在完成此任务后将图像放入网格视图时,图像已成功加载到我的网格视图中,但是当我向下滚动时,它会在 logcat 中引发内存不足错误。
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView iv;
if(convertView==null)
{
iv= new ImageView(mcontext);
WindowManager wm = (WindowManager)mcontext.getSystemService(Context.WINDOW_SERVICE);
Display display = wm.getDefaultDisplay();
int height=display.getHeight()/2;
int width=display.getWidth()/2;
iv.setLayoutParams(new GridView.LayoutParams(width,width));
iv.setScaleType(ImageView.ScaleType.CENTER_CROP);
}
byte[] stringimage = Base64.decode(images.get(position),Base64.DEFAULT);
iv.setImageBitmap(BitmapFactory.decodeByteArray(stringimage,0,stringimage.length));
return iv;
}
【问题讨论】:
-
顺便说一句,您不必在每次迭代中都进行显示宽度/高度计算。在构造函数中的某个地方就足够了。图像阵列的大小是多少?您要加载多大的图像?您可能应该在加载图像视图之前包含一些缩放
-
您应该对位图使用 SoftReference,例如:link
标签: android gridview imageview