public final class CameraManager { private static CameraManager cameraManager;
private Camera camera;
private final Context context; private boolean previewing; private Handler autoFocusHandler;
private Handler previewHandler;
private int previewMessage; public static void init(Context context) {
if (cameraManager == null) {
cameraManager = new CameraManager(context);
}
} public static CameraManager get() {
return cameraManager;
} private CameraManager(Context context) {
this.context = context;
camera = null;
previewing = false; } public String openDriver(SurfaceHolder holder)
throws IOException {
// holder.setType(2);
String result = null;
if (camera == null) {
// Camera.Parameters parameters = camera.getParameters();
// parameters.set("camera-id",2);
camera = Camera.open();
camera.setPreviewDisplay(holder);
/**
* ��androidģ�������ûس��ִ���������Ͽ������ã����������ϲ����ã������պ��ȡ��Ƭ�����
* */
// Camera.Parameters p =camera.getParameters();
// p.setPreviewFormat(PixelFormat.JPEG);
// p.setPreviewSize(CameraPreview.ScrrenWidth, CameraPreview.ScrrenHeight);
// p.setPictureSize(CameraPreview.ScrrenWidth, CameraPreview.ScrrenHeight);
// camera.setParameters(p); }
return result;
}
public void closeDriver() {
if (camera != null) {
camera.release();
camera = null;
}
} public void startPreview() {
if (camera != null && !previewing) {
camera.startPreview();
previewing = true;
}
} public void stopPreview() {
if (camera != null && previewing) {
// if (!useOneShotPreviewCallback) {
// camera.setPreviewCallback(null);
// }
camera.stopPreview();
previewHandler = null;
autoFocusHandler = null;
previewing = false;
}
} public void requestPreviewFrame(Handler handler, int message) {
if (camera != null && previewing) {
previewHandler = handler;
previewMessage = message;
// if (useOneShotPreviewCallback) {
// camera.setOneShotPreviewCallback(previewCallback);
// } else {
// camera.setPreviewCallback(previewCallback);
// }
camera.takePicture(null, null,jpegCallback);
}
} public void requestAutoFocus(Handler handler, int message) {
// if (camera != null && previewing) {
// autoFocusHandler = handler;
// autoFocusMessage = message;
// camera.autoFocus(autoFocusCallback);
// }
}
private ShutterCallback shuuterCallback = new ShutterCallback() { public void onShutter() { } };
ProgressDialog alertDialog;
private PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) {
if(previewHandler!=null){
try{
Bitmap $bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
int sizew=240;
int sizeh=320;
float scaleWidth = ((float) sizew) / $bitmap.getWidth();
float scaleHeight = ((float) sizeh) / $bitmap.getHeight();
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
//
Bitmap resizedBitmap = Bitmap.createBitmap($bitmap, 0, 0, $bitmap.getWidth(),
$bitmap.getHeight(), matrix, true);
ByteArrayOutputStream out = new ByteArrayOutputStream(data.length);
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 75, out);
byte[] array= out.toByteArray();
out.flush();
out.close(); Message message = previewHandler.obtainMessage(previewMessage, array);
message.sendToTarget();
previewHandler=null;
System.gc();
}catch(Exception ex)
{
}
}
} };
}
不是调用系统的相机 有哪位兄台知道 如何调用前置摄像头吗。。 2.2 的哦 不是2.3
private Camera camera;
private final Context context; private boolean previewing; private Handler autoFocusHandler;
private Handler previewHandler;
private int previewMessage; public static void init(Context context) {
if (cameraManager == null) {
cameraManager = new CameraManager(context);
}
} public static CameraManager get() {
return cameraManager;
} private CameraManager(Context context) {
this.context = context;
camera = null;
previewing = false; } public String openDriver(SurfaceHolder holder)
throws IOException {
// holder.setType(2);
String result = null;
if (camera == null) {
// Camera.Parameters parameters = camera.getParameters();
// parameters.set("camera-id",2);
camera = Camera.open();
camera.setPreviewDisplay(holder);
/**
* ��androidģ�������ûس��ִ���������Ͽ������ã����������ϲ����ã������պ��ȡ��Ƭ�����
* */
// Camera.Parameters p =camera.getParameters();
// p.setPreviewFormat(PixelFormat.JPEG);
// p.setPreviewSize(CameraPreview.ScrrenWidth, CameraPreview.ScrrenHeight);
// p.setPictureSize(CameraPreview.ScrrenWidth, CameraPreview.ScrrenHeight);
// camera.setParameters(p); }
return result;
}
public void closeDriver() {
if (camera != null) {
camera.release();
camera = null;
}
} public void startPreview() {
if (camera != null && !previewing) {
camera.startPreview();
previewing = true;
}
} public void stopPreview() {
if (camera != null && previewing) {
// if (!useOneShotPreviewCallback) {
// camera.setPreviewCallback(null);
// }
camera.stopPreview();
previewHandler = null;
autoFocusHandler = null;
previewing = false;
}
} public void requestPreviewFrame(Handler handler, int message) {
if (camera != null && previewing) {
previewHandler = handler;
previewMessage = message;
// if (useOneShotPreviewCallback) {
// camera.setOneShotPreviewCallback(previewCallback);
// } else {
// camera.setPreviewCallback(previewCallback);
// }
camera.takePicture(null, null,jpegCallback);
}
} public void requestAutoFocus(Handler handler, int message) {
// if (camera != null && previewing) {
// autoFocusHandler = handler;
// autoFocusMessage = message;
// camera.autoFocus(autoFocusCallback);
// }
}
private ShutterCallback shuuterCallback = new ShutterCallback() { public void onShutter() { } };
ProgressDialog alertDialog;
private PictureCallback jpegCallback = new PictureCallback() { public void onPictureTaken(byte[] data, Camera camera) {
if(previewHandler!=null){
try{
Bitmap $bitmap = BitmapFactory.decodeByteArray(data, 0, data.length);
int sizew=240;
int sizeh=320;
float scaleWidth = ((float) sizew) / $bitmap.getWidth();
float scaleHeight = ((float) sizeh) / $bitmap.getHeight();
Matrix matrix = new Matrix();
matrix.postScale(scaleWidth, scaleHeight);
//
Bitmap resizedBitmap = Bitmap.createBitmap($bitmap, 0, 0, $bitmap.getWidth(),
$bitmap.getHeight(), matrix, true);
ByteArrayOutputStream out = new ByteArrayOutputStream(data.length);
resizedBitmap.compress(Bitmap.CompressFormat.JPEG, 75, out);
byte[] array= out.toByteArray();
out.flush();
out.close(); Message message = previewHandler.obtainMessage(previewMessage, array);
message.sendToTarget();
previewHandler=null;
System.gc();
}catch(Exception ex)
{
}
}
} };
}
不是调用系统的相机 有哪位兄台知道 如何调用前置摄像头吗。。 2.2 的哦 不是2.3
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货