自定义缩放在Google Glass上,捕获的图像不是预览显示的内容

时间:2014-11-24 10:04:31

标签: java android-camera google-glass google-gdk android-hardware

所以我在Google Glass上成功实现了自己的缩放功能,因为目前谷歌没有添加此功能。它看起来像这样:

@Override
public boolean onFling( MotionEvent e1, MotionEvent e2, float velocityX, float velocityY ) 
{
    Camera.Parameters parameters = mCamera.getParameters();
    parameters.setPreviewFpsRange(30000, 30000);
    int zoom = parameters.getZoom();

    if ( velocityX < 0.0f )
    {
        zoom -= 10;
        if ( zoom < 0 )
            zoom = 0;
    }
    else if ( velocityX > 0.0f )
    {
        zoom += 10;
        if ( zoom > parameters.getMaxZoom() )
            zoom = parameters.getMaxZoom();
    }

    mCamera.startSmoothZoom(zoom);

    return false;
}

然后我检测表面是否发生变化并调用预览功能来更新屏幕上的预览:

 private void initPreview(int width, int height) 
{
    if ( mCamera != null && mPreviewHolder.getSurface() != null) {
        try 
        {
            mCamera.setPreviewDisplay(mPreviewHolder);
        }
        catch (Throwable t) 
        {
            Log.e(TAG, "Exception in initPreview()", t);
            Toast.makeText(CameraZoom.this, t.getMessage(), Toast.LENGTH_LONG).show();
        }

        if ( !mCameraConfigured ) 
        {
            Camera.Parameters parameters = mCamera.getParameters();
            parameters.setPreviewFpsRange(30000, 30000);
            parameters.setPreviewSize(1920, 1080); // hard coded the largest size for now
            mCamera.setParameters(parameters);
            mCamera.enableShutterSound(true); 
            mCamera.setZoomChangeListener(this);

            mCameraConfigured = true;
        }
    }
}

问题在于,当我调用相机拍摄照片时,会拍摄预览图片,该图片位于预览所在的位置。高度没有设置为预览参数或我不确定的东西。这是捕获的调用:

public void onClick(View v)
{
    mCamera.takePicture(null, null, capturedIt);
}

和captureIt只是一个PictureCallback。因此总之,预览中的图像不是摄像机捕获的图像。任何帮助将非常感激。

0 个答案:

没有答案