无法使用Android 2.3移动预览图像(适用于2.2)

时间:2011-07-29 07:30:57

标签: android camera surfaceview android-camera

我有一个简单的照片拍摄应用程序,具有以下设计:

[考虑到横向模式以简化]

  1. 左侧有一些按钮
  2. 在表面的其余部分(右侧),我将相机图像预览
  3. 图像的分辨率与屏幕尺寸相同。例如,如果我的屏幕分辨率为800x480,则图像的分辨率也为800x480。

    我想要做的是将图像预览移动到右侧。通过移动我的意思是:

    假设我的分辨率为800x480。左侧(带按钮)的大小为200像素。这意味着图像预览有600像素,而图像宽800像素(800x480)。这意味着我可以将x轴上的图像移动200像素(最多 - 下面的nOffset变量)。在Android 2.2上,使用以下代码非常有效:

    SurfaceView cameraView;
    ....
    cameraView.setLayoutParams(new AbsoluteLayout.LayoutParams(
                                      surfaceWidth, surfaceHeight, 
                                      nOffset, 0)
    );
    

    我的问题是:

    • 2.3中的代码有什么问题,而2.2中的代码运行良好?
    • 有更好的方法将预览图像移动到屏幕区域吗?

    感谢任何建议和替代方案,

    尤利安

    PS:cameraView位于其上设置的另一个表面

    holder.setFormat(PixelFormat.TRANSLUCENT);
    setZOrderOnTop(true);
    

1 个答案:

答案 0 :(得分:0)

我们所有的测试都表明这是一个Android 2.3问题。当我们尝试在Android 2.2上运行的东西时,图像无法移动,而是被拉伸。

这是我们调查的结果;它显然不是预期的,并且在某种程度上是一种令人惊讶的“回归”。