【问题标题】:Images from Custom Camera are blurry on Galaxy NexusGalaxy Nexus 上来自自定义相机的图像模糊不清
【发布时间】:2012-08-13 23:44:59
【问题描述】:

我在应用程序中有一个自定义相机,在大多数设备上拍摄的图像看起来都不错,但在 Galaxy Nexus 上的情况有所不同。 Galaxy nexus 中的图像模糊不清。我在摩托罗拉 Atrix 上也看到了颗粒状线条。但 Droid X、Droid Razr、HTC Evo、HTC 不可思议都显示出不错的成绩。知道为什么会发生吗?这就是我到目前为止所拥有的。 P.S.:我在活动中使用自动对焦。

public class CameraPreview extends SurfaceView implements
    SurfaceHolder.Callback {

private SurfaceHolder mHolder;
private Camera mCamera;

public CameraPreview(Context context, Camera camera) {
    super(context);
    mCamera = camera;
    mHolder = getHolder();
    mHolder.addCallback(this);
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}

@Override
public void surfaceCreated(SurfaceHolder holder) {
    // The Surface has been created, now tell the camera where to draw the
    // preview.
    try {
        mCamera.setPreviewDisplay(holder);
        Camera.Parameters parameters = mCamera.getParameters();
        List<String> focusModes = parameters.getSupportedFocusModes();
        if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) {
            parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
        }

        parameters.set("orientation", "portrait");

        mCamera.setDisplayOrientation(90);
        mCamera.setParameters(parameters);
        mCamera.startPreview();
    } catch (IOException e) {
    }
}

@Override
public void surfaceDestroyed(SurfaceHolder holder) {

}

@Override
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {

    if (mHolder.getSurface() == null) {
        // preview surface does not exist
        return;
    }
    // stop preview before making changes
    try {
        mCamera.stopPreview();
    } catch (Exception e) {
        // ignore: tried to stop a non-existent preview
    }

    try {
        mCamera.startPreview();

    } catch (Exception e) {
    }
}

【问题讨论】:

  • 愚蠢的问题,但是您是否在清单中包含
  • 是的。我确实将它添加到清单文件中。
  • 可能重复? stackoverflow.com/questions/8838441/…你尝试改变 camera.setJpegQuality() 吗?
  • 好吧,我正在为 Galaxy Nexus 和 Atrix 获得这种行为。
  • 设置 JPEG 质量对我有什么帮助?除非它对 Nexus 和 Atrix 有不同的要求

标签: android android-camera galaxy


【解决方案1】:

我解决了这个问题已经有一段时间了。如果我没记错的话,我通过在获取相机实例时添加以下行来解决。

Camera.Parameters parameters = camera.getParameters();
List<Camera.Size> sizes = parameters.getSupportedPictureSizes();
int w = 0, h = 0;
for (Size size : sizes) {
   if (size.width > w || size.height > h) {
      w = size.width;
      h = size.height;
   }

 }
 parameters.setPictureSize(w, h);

【讨论】:

  • 你在哪里添加了这些行?
【解决方案2】:

你试过这个吗?

if (cameraParameters.getSupportedSceneModes().contains(Camera.Parameters.SCENE_MODE_STEADYPHOTO)) {
   cameraParameters.setSceneMode(Camera.Parameters.SCENE_MODE_STEADYPHOTO);
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-04-02
    • 1970-01-01
    • 1970-01-01
    • 2014-07-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多