【问题标题】:how can I save a bitmap with onRetainNonConfigurationInstance() for screen orientation?如何使用 onRetainNonConfigurationInstance() 保存位图以用于屏幕方向?
【发布时间】:2011-05-02 21:58:12
【问题描述】:

在我的班级视图中,手机摄像头将被打开,并且程序在用户从手机摄像头拍照后显示位图,但同时用户将屏幕旋转到“横向”位图将消失,活动的 oncreate() 将再次加载并且然后相机将再次打开。

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

问题是如何在用户旋转手机之前保存位图(取自手机摄像头),这样即使手机处于横向模式,屏幕上也会显示相同的位图??

---编辑--- 添加到AndroidManifest.xml是获取保存状态的好方法吗?

【问题讨论】:

  • 转到您的原始帖子并接受最可行的答案。

标签: android android-layout bitmap state android-image


【解决方案1】:

保存在SaveInstanceState上:

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

然后在创建时将其取回:

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

【讨论】:

  • 但程序说“位图无法解析为变量”。我能做什么?
  • 听起来好像您需要阅读一般的编程知识。您没有发布任何代码,因此 dmon 为您提供了一个通用示例,通用变量名称为 bitmap。用您的真实变量名称替换相机中的位图。如果我说的没有道理,请在线​​查看一些通用编程信息。
  • 我之前按照你说的试过了,但是当我写我真正的位图变量名时,结果是一样的
  • 我还需要使用 onRestoreInstanceState() 和 onSaveInstanceState() 吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-08-14
相关资源
最近更新 更多