如何使用 onRetainNonConfigurationInstance() 保存位图以实现屏幕方向?

发布于 2024-11-04 11:01:39 字数 294 浏览 1 评论 0原文

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

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

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

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

In my class view phone cam will be opened and programme shows the bitmap after user take photo from phone cam but at the same time the user rotates the screen to "landscape" bitmap will disappear and activity's oncreate() will load again and then camera will be opened again.

I didnt know save bitmap with onRetainNonConfigurationInstance() or onSaveInstanceState().

The question is this how can I save the bitmap(taken from phone cam) before user rotates the phone so that even if phone is landscape mode same bitmap will be showed in the screen??

---EDIT---
Adding to AndroidManifest.xml is a good way to obtain saving state?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

溺渁∝ 2024-11-11 11:01:39

在SaveInstanceState 上保存它

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

并在Create 上取回它:

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

Save it onSaveInstanceState:

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

And get it back onCreate:

 @Override
  public void onCreate(Bundle savedState) {
    super.onCreate(savedState);
    if (savedState != null) bitmap = savedState.getParcelable("bitmap");
  }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文