2012-07-05 85 views
1

我在ViewPager中显示图像。显示的图像占用大量空间。显示几张图片后,它会抛出java.lang.outofMemoryError: Bitmap size exceeds VM bugdet.有什么建议可能会出错?在Android中显示图像会导致内存不足错误

公共对象instantiateItem(查看寻呼机,INT位置) { LayoutInflater充气=(LayoutInflater)pager.getContext() .getSystemService(Context.LAYOUT_INFLATER_SERVICE);

 View view = inflater.inflate(R.layout.fotopager_buttons,null); 

     TextView text =((TextView)view.findViewById(R.id.textView1)); 
     text.setText(Global.totalpaging_titlearray[position]); 

     TextView textprice =((TextView)view.findViewById(R.id.textprice)); 
     textprice.setText("SAR "+Global.totalpaging_pricearray[position]); 

     TextView textdesc =((TextView)view.findViewById(R.id.textdescription)); 
     textdesc.setText(Global.totalpaging_descarray[position]); 

     ImageView imageView1= ((ImageView) view.findViewById(R.id.image)); 
     bimage= getBitmapFromURL(Global.totalpaging_array[position]); 
     imageView1.setImageBitmap(bimage); 

     ((ViewPager) pager).addView(view); 

     return view; 


    } 
+0

plz参考我的答案:http://stackoverflow.com/questions/11133645/imageview-outofmemoryexception/11133787#11133787 – Nermeen 2012-07-05 12:56:15

+0

@ M Mohsin Naeem:我GOOGLE了很多,然后只发布了问题。 – Soniya 2012-07-05 13:07:49

+1

@nunu:我不想调整位图的大小,但我想通过释放可绘制对象来管理内存管理。 – Soniya 2012-07-05 13:10:27

回答

0

据我所知,你正在视图寻呼机的页面上显示图像。您的视图传呼机有多少页?

如果您的一个页面中的位图超过了VM预算,请考虑调整位图大小或解码为低存储色彩格式,如RGB565或ARGB444。

如果没有代码,则无法确定是否正确实例化视图分页器的页面。你可以发布你的PagerAdapter类instantiateItem(View view, int position)方法的代码吗?

+0

请检查我的问题,我用我的代码编辑 – Soniya 2012-07-06 09:05:37

+0

@Soniya你没有显示'getBitmapFromURL()'方法的代码。我想你已经使用位图工厂从url下载位图。反正[这里是一个页面](http://developer.android.com/training/displaying-bitmaps/load-bitmap.html)我可以指向处理大型位图 – Supreethks 2012-07-06 13:23:36

0

在图像非常大之前,您会遇到此问题。它们是非常高分辨率的图像,因此尺寸非常大。尝试使用任何软件(如Photoshop)来缩小这些图像的大小或分辨率。

相关问题