我和https://github.com/commonsguy/cwac-camera
一直在争吵管理以创建自定义CameraFragment
和自定义自定义CameraHost
。
我已经过度getPictureSize
和getPreviewSize
。通过这两种方法,我可以找出哪些Size
s 能够被使用。我的总体想法是捕获正方形图像,并在捕获之前预览它。
我一直在测试,没有设备返回方格式Size
,所以我想最好的方法是将尺寸调整到最接近我的需要。就像我需要800x800平方图像一样,我会返回最近的Size
,那将是(例如)1280x1024
到目前为止一切顺利。问题如下:
文档说明:
通常,您的CameraHost将使用getPreviewSize()
进行调用
该死;我的Nexus5设备永远不会触发这种方法,但Genymotion模拟器可以。因此,在我的模拟器中,我可以创建自定义预览大小,我无法使用我的真实设备。 所以我需要一些帮助解决这个问题。为什么它只是“通常”?我该怎么办才能将其改为“永远”?
在第二个学期,我需要一些提示:如果我想要一个平方的预览尺寸,我知道默认情况下它不会被Size
s 提供{{1 ,我该怎么做才能显示正方形?也许在getSupportedPreviewSizes
之上覆盖一个正方形?它甚至可能吗?或者我应该采取其他方法吗?
无论如何,祝贺图书馆;它绝对清晰,有很多选择。无需担心“某些设备”。这对Android开发者来说很棒。
谢谢。
答案 0 :(得分:3)
为什么只是“通常”?我该怎么办才能将其改为“永远”?
引用文档:
如果
getRecordingHint()
返回ANY
或VIDEO_ONLY
,CameraHost
会通过getPreferredPreviewSizeForVideo()
而不是getPreviewSize()
提供预览尺寸。如果您希望为视频使用不同的预览尺寸,请将其返回,否则返回null
,我们将使用getPreviewSize()
的结果。
在API级别11+上,SimpleCameraHost
getPreferredPreviewSizeForVideo()
的实施委托给getPreferredPreviewSizeForVideo()
上的Camera.Parameters
实施,但已知为其返回较差值的设备除外。< / p>
我该怎样做才能展示广场?也许在CameraFragment上叠加一个正方形?
我会尝试将CameraView
直接放在您自己的用户界面中,然后使用FrameLayout
或RelativeLayout
对其进行分层,以控制Z轴排序。