2013-04-01 124 views
0

我正在開發一個android應用程序,它在一個頁面中有七個滑塊。即有七個問題,每個問題對應一個滑塊。用戶可以通過在每個滑塊中滑動指針來回答問題。在S3這個頁面崩潰。我們正在爲此部分使用高分辨率圖像。Android - S3中的內存不足問題

這是由於S3中堆的大小較小嗎?我們可以解決這個問題嗎?有什麼方法可以解決這個問題嗎?對於這個框架,我們是否需要使用質量較差的圖像(這是不可取的)?

+1

logcat的PLS工作???? –

+0

可以發佈你的屏幕快照嗎?你在一個屏幕上顯示所有7個相關圖像的問題。 – Raghunandan

回答

0

使用下面的方法來設置在ImageView的圖像從this環節得到了我

public Bitmap ShrinkBitmap(String file, int width, int height){ 

      BitmapFactory.Options bmpFactoryOptions = new BitmapFactory.Options(); 
       bmpFactoryOptions.inJustDecodeBounds = true; 
       Bitmap bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions); 

       int heightRatio = (int)Math.ceil(bmpFactoryOptions.outHeight/(float)height); 
       int widthRatio = (int)Math.ceil(bmpFactoryOptions.outWidth/(float)width); 

       if (heightRatio > 1 || widthRatio > 1) 
       { 
       if (heightRatio > widthRatio) 
       { 
        bmpFactoryOptions.inSampleSize = heightRatio; 
       } else { 
        bmpFactoryOptions.inSampleSize = widthRatio; 
       } 
       } 

       bmpFactoryOptions.inJustDecodeBounds = false; 
       bitmap = BitmapFactory.decodeFile(file, bmpFactoryOptions); 
      return bitmap; 
      } 
+0

http://www.youtube.com/watch?v=_CruQY55HOk。視頻中的人給出了關於使用System.gc();的警告。 – Raghunandan

+0

對不起,我的視頻流慢,所以我無法觀看視頻,但我已經使用system.gc(),它並沒有給我造成任何麻煩 –

+0

@ Auto-Droid檢查鏈接http://stackoverflow.com/問題/ 2414105 /爲什麼 - 是 - 它 - 一個壞實踐通話系統-GC。 – Raghunandan

0

你是loading Bitmaps Efficiently

如果是的話,那麼你可以嘗試在AndroidManifest文件您<application>標籤使用

android:largeHeap="true" 

增加堆的大小。

警告:

  • 較大的堆大小意味着更長的(垃圾收集)GC時間。
  • 如果您的應用程序堆大小較大,則會顯着降低其他應用程序的速度,用戶很快就會知道您的應用程序存在問題。
  • 請不要僅僅因爲出現內存錯誤而使用此選項。
+0

http://www.youtube.com/watch?v=_CruQY55HOk。更多的堆內存,更頻繁的垃圾收集。視頻中的人給出了關於使用大堆的大警告。 – Raghunandan

+0

感謝您的快速響應。我需要知道的第一件事是,這是可能解決這個問題在S3與更高分辨率的圖像? –

+0

@Raghunandan我知道,但你可以使用它,如果你需要你的應用程序該死的執行沒有更多的選項可用。 –