2013-08-27 33 views
1

我正在開發一個具有大圖片的各種片段活動的應用程序。我不想在活動中記住這些圖像,所以我使用setImageBitmap(null)解除圖像綁定。並retore恢復onResume()中的圖像。 但是,如果應用程序有完整的引用,爲什麼必須在xml中設置圖像呢? 當離開活動並強制從其他活動返回時重新創建視圖時,強制碎片中的所有圖像無法保留在堆中的最佳方式是什麼? 爲什麼我設置「setoffscreenPageLimit(1)」和三個片段的圖像始終保持在堆? 3是最小? 我正在使用fragmentStatePagerAdapter。爲什麼在xml中由android:src設置的圖像仍保存在堆中?

謝謝!

回答

1

使用「setoffscreenPageLimit(1)」,您告訴ViewPager在內存中加載下一個Fragment。我的意思是,加載當前片段左側和右側的片段。

而不要嘗試設置「setoffscreenPageLimit(0)」,將無法正常工作。

CNC中

此外,您還可以設置圖像編程這樣的,而不是通過XML設置它們的。

ImageView imageView = (ImageView)findViewById(R.id.imageview); 
Bitmap bitmap = BitmapFactory.decodeResource(getResources(),R.drawable.icon); 
imageView.setImageBitmap(bitmap); 
+0

感謝您的答覆。我認爲這是爲了順利運行轉換。 – borja

+0

是的。我剛剛更新了答案。 – MiguelCatalan

+0

@ user2660673如果對您的問題有用,請接受/投票答案= D – MiguelCatalan

0

最好的方法是當他們不再使用時回收您的位圖。

if(bitmap!=null) 
    { 
     bitmap.recycle(); 
     bitmap=null; 

    } 

關注第20個官方視頻的分鐘再予,如果你想使你的好日子 - http://www.youtube.com/watch?v=_CruQY55HOk

相關問題