可能重複:
Android: Strange out of memory issue while loading an image to a Bitmap object
OutOfMemoryError: bitmap size exceeds VM budget :- Android另一個 '位圖大小超過VM預算'
我知道,大約有這麼多的話題媒體鏈接,但不管我嘗試它不」 t似乎工作。
我試過幾個onDestroy技巧,包括回收位圖,把它放到空白等等等等。 不知道我的代碼是否與其他情況有什麼不同?這似乎是這樣... 我使用TouchImageView擴展,所以我可以使用捏縮放所以也許這使得它更復雜?
無論如何,這裏是我的代碼。任何人都可以請指出我可以如何解決這個問題(順便說一句,沒有縮小位圖)?
public class PageActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.page);
Intent parent = getIntent();
int pagenumber = parent.getIntExtra("pagenumber", 1);
int resID = getResources().getIdentifier("page"+pagenumber , "drawable", getPackageName());
TouchImageView img = new TouchImageView(this);
Bitmap bitmap = BitmapFactory.decodeResource(getResources(), resID);
img.setImageBitmap(bitmap);
img.setMaxZoom(4f);
LinearLayout rootview = (LinearLayout) findViewById(R.id.RootView);
rootview.addView(img);
}
}
我注意到onDestroy()不是開始調用,因爲我使用了tabhost。所以我嘗試過在其中放入一個ontablistener並以這種方式手動調用ondestroy,但是當活動還沒開始時它就會被調用,所以當我放入recycle()的東西時,我嘗試使用一個循環位圖:S –
我已經制定了一個很好的方法來阻止內存泄漏,所以可以重新打開這個主題,以便我可以發佈它? 我認爲其他人可能會從中受益。 –