2011-05-02 55 views
6

在我的班級視圖中,電話攝像頭將被打開,程序會在用戶從電話攝像頭拍攝照片後顯示位圖,但同時用戶將畫面旋轉到「橫向」位圖將消失,活動的oncreate()將再次加載相機將再次打開。如何使用onRetainNonConfigurationInstance()爲屏幕方向保存位圖?

我不知道用onRetainNonConfigurationInstance()或onSaveInstanceState()保存位圖。

問題是,如何在用戶旋轉手機前保存位圖(取自手機相機),以便即使手機處於橫向模式,相同的位圖也會顯示在屏幕上?

---編輯--- 添加到AndroidManifest.xml是獲取保存狀態的好方法嗎?

+0

去你的原職,並接受最可行的解決辦法。 – JoxTraex 2011-05-02 22:41:17

回答

9

保存的onSaveInstanceState它:

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

而且拿回來的onCreate:

@Override 
    public void onCreate(Bundle savedState) { 
    super.onCreate(savedState); 
    if (savedState != null) bitmap = savedState.getParcelable("bitmap"); 
    } 
+0

但程序說「位圖不能解析爲變量」。我能做什麼? – barzos 2011-05-02 22:19:19

+1

聽起來好像你需要閱讀一般的編程。你沒有發佈任何代碼,所以dmon給了你一個通用的例子,一個通用的變量名稱爲'位圖'。用您的真實變量名稱替換相機中的位圖。如果我說的沒有意義,請在線查看一些常規編程信息。 – 2011-05-02 22:25:56

+0

我之前嘗試過,因爲你告訴,但也是當我寫我的真正的變量名稱的位圖,結果是相同的 – barzos 2011-05-02 22:32:05