2011-05-02 53 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