我正在尝试使用操作栏支持实现一项活动,该活动以纵向模式显示相机预览图面。我正在计算最佳预览尺寸(来自zxing代码),但该代码不考虑动作条尺寸(即高度),返回拉伸图像预览。以前遇到类似问题的人?有关于考虑动作条高度打开相机预览的任何教程吗?
编辑: 我的目标是API级别> = 8。
我添加了样式:
真正 @空值 真正
我没有为android找到任何兼容的名称:windowActionModeOverlay,也许没有 支持吗?没有“压倒”它的缺点是什么?
我不得不补充:
机器人: “?ATTR / actionBarSize” paddingTop =
到FrameLayout,这样,我在AB和布局之间有垂直的正确空间。 我差不多了,但通知栏正在消失(我只是AB),我想是因为 全屏标签。我已经对目前的结果感到满意,但如果有人出来的话 有建议,欢迎他们。 =)
答案 0 :(得分:1)
您希望SurfaceView
保持屏幕的完整大小。相机的预览分辨率大多与屏幕的宽高比相匹配,因此如果不这样做,设备将被迫在一个维度上压缩图像以使其适合视图。
这意味着您不希望ActionBar
取代主SurfaceView
,而是让它位于其上方。我也让它变得透明。这是行动中的效果(https://play.google.com/store/apps/details?id=com.srowen.bs.android):
大部分内容都是通过在主题中设置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>