2012-07-05 87 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)來縮小這些圖像的大小或分辨率。

相關問題