获取Camera实例,在2.3之前可以用静态方法Camera camera = Camera.open();,如果手机带前后置的摄像头,那2.3之前sdk获取到的实例为后置的主摄像头,前置摄像头获取不到。
获取Parameters parameters = camera.getParameters(); parameters里有个方法getSupportedPictureSizes(),获取到所有支持的图片像素。循环取最大的width和height(最大值一般是List的第一个元素,嫌麻烦可以直接get(0))。
width*height就为摄像头的像素!例如500百万像素!
2.3以上sdk可以用Camera.getNumberOfCameras()获取摄像头数,(有的手机是三个摄像头,前置一个,后置双摄像头,但是这里取出来的数值仍然是2)。Camera.open(int cameraId)获取指数摄像头实例。
public int getCameraId(int type) {
int numberOfCameras = Camera.getNumberOfCameras();
CameraInfo cameraInfo = new CameraInfo();
for (int i = 0; i < numberOfCameras; i++) {
Camera.getCameraInfo(i, cameraInfo);
if (cameraInfo.facing == type) {
return i;
}
}
return 2;
}
其中int type为public static final int CAMERA_FACING_BACK = 0; public static final int CAMERA_FACING_FRONT = 1;
取出前摄像头或者后摄像头,按上面的方法计算摄像头的像素!注意:一般计算出来的数值都比网上标明的要小,厂商又夸大自家商品了= =!