如何在安卓上实现分辨率独立的相机预览?

4
我正在制作一个使用手机相机的Android 1.6应用程序。
为了使该应用程序具有分辨率独立性,我需要在SurfaceLayout上设置兼容的宽高比来预览相机。在1.6 SDK中,没有办法获取相机预览的支持尺寸。使用4:3或3:2的宽高比是否可行且不会出现错误?
另一方面,我需要一种方法来创建一个XML布局,以表示这个(未知)宽高比的Surfacelayout在每个分辨率下都能适配。我假设不能在运行时更改SurfaceLayout的大小。我可以使用“dp”单位来实现吗?另一种方式是通过编程实现此布局?
像Vignette或Android相机应用程序这样的一些应用程序使用一些技巧来实现类似效果,例如黑色边框(Vignette)或固定按钮栏,但我不知道如何在任何分辨率下实现它。
有什么想法吗?
谢谢!
1个回答

6
在1.6版本的sdk中,没有获取相机预览支持尺寸的方法。
但实际上是有方法的。你可以通过解析相机参数中的preview-size-values来获取尺寸信息。
String supportedSizesString = parameters.get("preview-size-values");
List<Size> supportedSizes = new ArrayList<Size>();
if (supportedSizesString != null && supportedSizesString.length() > 0) {
    StringSplitter ss = new TextUtils.SimpleStringSplitter(',');
    ss.setString(supportedSizesString);
    for (String supportedSize : ss) {
        String[] dimentions = supportedSize.split("x");
        if (dimentions.length > 1) {
            Size size = mCamera.new Size(Integer.parseInt(dimentions[0]),
            Integer.parseInt(dimentions[1]));
            supportedSizes.add(size);
        }
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接