2013-05-11 40 views
0

我有一個imageview的圖像被用戶選擇和更改,我需要保存它的實例狀態,以便在屏幕方向更改或當他們切換到不同的活動時顯示當前圖像等。我一直在尋找一段時間但不能找出我需要用來從imageview中獲取我需要傳入onSaveInstanceState包的信息的方法。請有人指出我正確的方向嗎?需要從imageview中保存當前實例狀態的方法?

回答

1

沒有什麼可以「用來從imageview中獲取信息」。您需要通過其他方式知道ImageView中圖像的來源,並選擇將其保存在您的實例狀態中。

例如,更新ImageView的代碼可以將圖像源數據存儲在片段或活動的數據成員中,該數據成員承載着ImageView

+0

我有一個資源圖像ID,我應該使用getResourceId並將其保存到捆綁? – user1409172 2013-05-11 15:04:42

+0

@ user1409172:我不知道你指的是什麼「getResourceId」。這就是說,將資源ID存儲在「Bundle」中應該可以正常工作。 – CommonsWare 2013-05-11 15:15:10

+0

似乎「getResourcesId」是某人爲他們的目的而製造的東西,我偶然發現了這些東西,但是你和那個人指出了我正確的方向,並且我發現了我在早上尋找的更好的部分。感謝您幫助自學的noob學習東西,並獲得工作結果:) – user1409172 2013-05-11 15:44:23

-1

下面是我工作:

我第一次保存的位圖的狀態onSavedInstanceState:

@Override 
public void onSaveInstanceState(Bundle outState) 
{ 
    super.onSaveInstanceState(outState); 
    outState.putParcelable(BITMAP, bitmap); 
} 

然後,我檢索和onRestoreInstanceState裝好了:

@Override 
public void onRestoreInstanceState(Bundle savedInstanceState) 
{ 
    super.onRestoreInstanceState(savedInstanceState); 
     if(savedInstanceState != null) 
     { 
      bitmap = (Bitmap) savedInstanceState.getParcelable(BITMAP); 
      loadImg.setImageBitmap(bitmap); 
     } 
} 
+0

onSaveInstanceState()回調不是用來傳輸大對象(比如位圖),其中的數據必須被序列化然後反序列化,這會消耗大量的內存並使配置更改緩慢。 – 2015-10-23 15:01:32

相關問題