带操作栏的摄像头预览

时间:2013-11-09 12:06:43

标签: android android-actionbar android-camera surfaceview zxing

我正在尝试使用操作栏支持实现一项活动,该活动以纵向模式显示相机预览图面。我正在计算最佳预览尺寸(来自zxing代码),但该代码不考虑动作条尺寸(即高度),返回拉伸图像预览。以前遇到类似问题的人?有关于考虑动作条高度打开相机预览的任何教程吗?

编辑: 我的目标是API级别> = 8。

  1. 我添加了样式:

        真正     @空值     真正

  2. 我没有为android找到任何兼容的名称:windowActionModeOverlay,也许没有 支持吗?没有“压倒”它的缺点是什么?

    1. 我不得不补充:

      机器人: “?ATTR / actionBarSize” paddingTop =

    2. 到FrameLayout,这样,我在AB和布局之间有垂直的正确空间。 我差不多了,但通知栏正在消失(我只是AB),我想是因为 全屏标签。我已经对目前的结果感到满意,但如果有人出来的话 有建议,欢迎他们。 =)

1 个答案:

答案 0 :(得分:1)

您希望SurfaceView保持屏幕的完整大小。相机的预览分辨率大多与屏幕的宽高比相匹配,因此如果不这样做,设备将被迫在一个维度上压缩图像以使其适合视图。

这意味着您不希望ActionBar取代主SurfaceView,而是让它位于其上方。我也让它变得透明。这是行动中的效果(https://play.google.com/store/apps/details?id=com.srowen.bs.android):

enter image description here

大部分内容都是通过在主题中设置ActionBar样式来完成的。以下是我为此修改默认Holo主题所做的工作:

<style name="CaptureTheme" parent="android:Theme.Holo">
  <item name="android:windowFullscreen">true</item>
  <item name="android:windowContentOverlay">@null</item>
  <item name="android:windowActionBarOverlay">true</item>
  <item name="android:windowActionModeOverlay">true</item>
</style>