android - 使用 CWAC 相机预览尺寸

标签 android camera commonsware-cwac

我已经和 https://github.com/commonsguy/cwac-camera 战斗了一段时间了

成功创建了我的自定义 CameraFragment 和自定义 CameraHost

我已经覆盖了 getPictureSizegetPreviewSize。通过这两种方法,我可以找出可以使用哪些 Sizes。我的总体想法是捕获方形图像,并在捕获之前预览它。

我一直在测试,没有设备返回方形格式的 Size,所以我想最好的方法是采用最接近我需要的 Size。就像如果我需要 800x800 的方形图像,我将返回最接近的 Size,即(例如)1280x1024

到目前为止一切顺利。问题如下:

文档说明:

Usually, your CameraHost will be called with getPreviewSize()

该死的;我的 Nexus5 设备永远不会触发此方法,但 Genymotion 模拟器会触发。因此,在我的模拟器中,我可以创建自定义预览尺寸,而我的真实设备则无法做到这一点。 所以我需要一些帮助来解决这个问题。为什么只是“通常”?我该怎么做才能将其更改为“始终”?

在第二个学期,我需要一些提示:如果我想要一个平方预览尺寸,我知道默认情况下它不可用 Sizes 返回getSupportedPreviewSizes,如何显示正方形?也许在CameraFragment之上覆盖一个正方形?有可能吗?或者我应该采用其他方法吗?

无论如何,祝贺图书馆;它绝对清晰并且有很多选择。无需担心“某些设备”。作为一名 Android 开发者,这真是太棒了。

谢谢。

最佳答案

Why is it just "usually"? What can I do to change it to "always"?

引用文档:

If getRecordingHint() returns ANY or VIDEO_ONLY, though, CameraHost supplies the preview size via getPreferredPreviewSizeForVideo() instead of getPreviewSize(). If you wish to use a different preview size for video, return it, otherwise return null and we will use the results from getPreviewSize() instead.

在 API 级别 11+ 上,SimpleCameraHost getPreferredPreviewSizeForVideo() 的实现委托(delegate)给 Camera 上的 getPreferredPreviewSizeForVideo() 实现。参数,除了已知会返回较差值的设备。

what can I do to display an square? Maybe overlaying a square on top of CameraFragment?

我会尝试将 CameraView 直接放入您自己的 UI 中,然后在其上分层一些内容,使用 FrameLayoutRelativeLayout 进行控制Z 轴排序。

关于android - 使用 CWAC 相机预览尺寸,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20792139/

相关文章:

python - 值错误 : too many values to unpack python 2. 7

c++ - 如何使用c++从图像采集卡中获取数据

iphone - iOS 相机倒数计时器

android - 使用 SQLiteCursorLoader 从 SQLite 更新返回 _id

java - Android:我应该避免在 Commonsware 的 WakefulIntentservice 中使用自己编写的方法吗?

java - 没有找到类 "android.support.v7.widget.CardView"

android - 如何 "reset" ListView 并再次显示@android :id/empty when repopulating

android - 有没有更好的方法将上下文传递给辅助 kotlin 类?

安卓相机硬件信息

android - 使用 StreamProvider 在消息传递中共享多个图像时出现异常