2013-04-04 127 views
0

嗨下面是我如何启动我的相机。我总是获得320×240的图像尺寸。关于如何设置以使相机以该设备支持的最大尺寸拍摄图像的任何想法?Android相机参数图像大小

 File photo = null; 
     String FILE_NAME ="20143"; 
Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); 
if (android.os.Environment.getExternalStorageState().equals(
     android.os.Environment.MEDIA_MOUNTED)) { 
    photo = new File(android.os.Environment.getExternalStorageDirectory(), FILE_NAME); 
} else { 
    photo = new File(getCacheDir(), FILE_NAME); 
}  
if (photo != null) { 
    intent.putExtra(MediaStore.EXTRA_OUTPUT, Uri.fromFile(photo)); 
    selectedImageUri = Uri.fromFile(photo); 
    startActivityForResult(intent, CAMERA_PIC_REQUEST); 
} 

回答

1

要获得该设备支持

Camera.Parameters parameters = mCamera.getParameters(); 
List<Camera.Size> sizes = parameters.getSupportedPictureSizes(); 

所有大小我用下面的方法寿获得最佳尺寸

private Camera.Size getBestPreviewSize(int width, int height, 
     Camera.Parameters parameters) { 
    Camera.Size result = null; 

    for (Camera.Size size : parameters.getSupportedPictureSizes()) { 
     Log.d("size: ", size.width + ":" + size.height); 
     if (size.width <= width && size.height <= height) { 
      if (result == null) { 
       result = size; 
      } else { 
       int resultArea = result.width * result.height; 
       int newArea = size.width * size.height; 

       if (newArea > resultArea) { 
        result = size; 
       } 
      } 
     } 
    } 

    return (result); 
} 

int width, int height是surfaceHolder的宽度,高度。

+0

你可以发布如何在活动中使用吗? – user903772 2013-04-04 05:03:40

+0

对不起,我没有使用相机意图在我的情况。 获取完整大小很快会导致OutOfMemory,但您可以使用临时文件[链接](http://stackoverflow.com/questions/6448856/android-camera-intent-how-to-get-full-sized-photo ) – 2013-04-04 05:22:14

+0

这对我来说非常适合! +1! – 2014-05-13 20:38:21