题
如何以编程方式准确地确定在设备屏幕尺寸上显示摄像头预览的应用程序的最佳预览大小?(或者在可变尺寸的任何视图中,真的).
在您尝试将其标记为数百万其他方面比例之一的相关问题之前,请理解我正在寻找与通常可用的解决方案不同的解决方案.我问这个问题,因为我已经阅读了很多"答案",但他们都指出了一种我认为不完整的解决方案(并且可能存在缺陷,我将在这里描述).如果这不是一个缺陷,请帮助我理解我做错了什么.
我已经阅读了很多关于应用程序如何选择预览大小的不同实现,并且大多数采用的方法是我称之为"足够接近"的方法(您可以根据减去大小选项的比例来确定哪个选项最佳)屏幕分辨率的比率,并找到具有最低值的选项).这种方法似乎无法确保它选择最佳选择,但确保它不会选择最差的选项.
例如,如果我尝试在屏幕分辨率为的设备上迭代每个可用的预览大小720x1184并显示预览全屏(720x1184),这里是相机预览的结果(按照格式中最接近屏幕分辨率的选项排序abs(ratio of size option - screen resolution ratio)) .所有尺寸均来自.getSupportedPreviewSizes).("结果"来自使用测试用例的视觉观察,使用静态圆圈出现在相机的取景器中并且不是程序化的)
720.0/1184.0 = 0.6081081081081081
Res Ratio Delta in ratios Result
----------------------------------------------------
176/144 = 1.22222222222 (0.614114114114) (vertically stretched)
352/288 = 1.22222222222 (0.614114114114) (vertically stretched)
320/240 = 1.33333333333 (0.725225225225) (vertically stretched)
640/480 = 1.33333333333 (0.725225225225) (vertically stretched)
720/480 = 1.5 (0.891891891892) (vertically stretched)
800/480 = 1.66666666667 (1.05855855856) (looks good)
640/360 = 1.77777777778 (1.16966966967) (horizontally squashed) …Run Code Online (Sandbox Code Playgroud) 我是Android开发人员的新手,所以我可能会遗漏一些我能尝试的明显的东西.
我正在尝试调试一些代码,但调试器正在逐步完成旧版本的代码,而不是我项目中的当前版本.
很明显,它已跳过我的异常'throw'和注释代码
我试过了:
这实际上是cwac demo v9,因此它是一个使用"相机"库的演示应用程序,它位于我正在调试的cwac相机库项目中.
对我来说不清楚的是gradle构建的地方和内容,所以我没有从Windows资源管理器中"清理"任何东西.我甚至无法检查文件日期......
有什么提示可以告诉我如何检查最新的代码是否会出现在设备上?
谢谢.