【发布时间】:2013-06-04 11:48:30
【问题描述】:
我一直在开发基于 Redlaser 的扫描仪库构建的条形码扫描仪应用程序,并且我正在尝试在扫描仪覆盖层上实现一个按钮,该按钮将切换相机的方向。我已经解决这个问题很长时间了,但我仍然找不到任何解决方案。以下是我尝试过但未能开始工作的解决方案列表。也许有人可以改进它们或想出一些不同的东西。
1.Rotate UI -> 保持原样并旋转按钮。 不可接受:旋转不适用于 Android 2.3,应用需要与 2.3 兼容。
2.使用android:configChanges="keyboardHidden|orientation|screenSize" 和setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 改变方向。 不起作用:这会旋转视图,但图像会变形,当我向上移动手机时,相机会向左移动。
3.将camera.setDisplayOrientation(90); 与解决方案2 一起使用。不可能: camera 对象位于RedLaser 库代码中,我无权访问它。也就是说,在我的 ScannerActivity.java 中我没有任何 Camera 对象。所以我不知道如何引用正在使用的那个。
4.使用setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_LANDSCAPE); 不确定: 似乎有效,但这会重新启动活动,我需要保留数据。我对this article很熟悉,但是还没有找到好的使用方法。我希望保存活动中的所有数据,包括一些ArrayList<BarcodeResult>。
有什么想法吗?
【问题讨论】:
-
文章介绍了如何保存重要数据。你到底有什么问题?
-
那么,如何在会话之间保存 'ArrayList
' 项?或任何其他类型的非原始类型。 -
好吧,您可以将其序列化为文件或写入数据库。你认为什么是“好方法”?我想您必须将那篇文章与关于 data persistence 的文章结合起来。
标签: java android camera orientation