//--------------------------------------------Code
Detail and Working---------------------------------------------------------
Step 1 permission
//============================java
Code Start =========================================
<uses-permission android:name="android.permission.CAMERA"
/>
=========================================End==========================================
//--------------------------------------------Code
Detail and Working---------------------------------------------------------
Step 2 Preview
//============================java
Code Start =========================================
public class CameraPreview extends SurfaceView
implements SurfaceHolder.Callback {
private SurfaceHolder
mHolder;
private Camera mCamera;
public CameraPreview(Context context, Camera
camera) {
super(context);
mCamera =
camera;
// Install a SurfaceHolder.Callback so we get notified when the
// underlying surface is created
and destroyed.
mHolder =
getHolder();
mHolder.addCallback(this);
// deprecated setting, but required on Android versions prior to
3.0
mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
}
public void surfaceCreated(SurfaceHolder holder) {
// The Surface has been created, now tell the camera where to draw
the preview.
try {
mCamera.setPreviewDisplay(holder);
mCamera.startPreview();
} catch
(IOException e) {
Log.d(TAG, "Error setting camera
preview: " +
e.getMessage());
}
}
public void surfaceDestroyed(SurfaceHolder holder) {
// empty. Take care of releasing the Camera preview in your
activity.
}
public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
// If your preview can change or rotate, take care of those events
here.
// Make sure to stop the preview
before resizing or reformatting it.
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
}
// set preview size and make any resize, rotate or
// reformatting changes here
// start preview with new settings
try {
mCamera.setPreviewDisplay(mHolder);
mCamera.startPreview();
} catch
(Exception e){
Log.d(TAG, "Error starting
camera preview: " +
e.getMessage());
}
}
}
=========================================End==========================================
//--------------------------------------------Code
Detail and Working---------------------------------------------------------
Step 3 instance and state camera
//============================java
Code Start =========================================
private void startCamera() {
camera =
getCameraInstance();
preview =
new CameraPreview(this, camera);
FrameLayout previewLayout = (FrameLayout) findViewById(R.id.camera_preview);
previewLayout.addView(preview);
}
private android.hardware.Camera getCameraInstance() {
android.hardware.Camera camera = null;
try {
camera = android.hardware.Camera.open();
} catch
(Exception e) {
e.printStackTrace();
}
return camera;
}
=========================================End==========================================
//--------------------------------------------Code
Detail and Working---------------------------------------------------------
Step 4 Permision and start camera
//============================java
Code Start =========================================
if (ContextCompat.checkSelfPermission(getApplicationContext(), Manifest.permission.CAMERA) != PackageManager.PERMISSION_GRANTED) {
int MY_PERMISSIONS_REQUEST_CAMERA=100;
ActivityCompat.requestPermissions(Camera.this, new String[]
{Manifest.permission.CAMERA}, MY_PERMISSIONS_REQUEST_CAMERA);
}
startCamera();
=========================================End==========================================