Mega Code Archive

 
Categories / Android / Hardware
 

Camera preview

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"   android:layout_width="fill_parent"   android:layout_height="fill_parent">   <SurfaceView     android:id="@+id/preview"     android:layout_width="fill_parent"     android:layout_height="fill_parent"   /> </RelativeLayout> import java.util.List; import android.app.Activity; import android.hardware.Camera; import android.os.Bundle; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; public class PreviewActivity extends Activity implements SurfaceHolder.Callback {     Camera mCamera;     SurfaceView mPreview;          @Override     public void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.main);                  mPreview = (SurfaceView)findViewById(R.id.preview);         mPreview.getHolder().addCallback(this);         mPreview.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);                  mCamera = Camera.open();     }          @Override     public void onPause() {         super.onPause();         mCamera.stopPreview();     }          @Override     public void onDestroy() {         super.onDestroy();         mCamera.release();     }     @Override     public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {         Camera.Parameters params = mCamera.getParameters();         List<Camera.Size> sizes = params.getSupportedPreviewSizes();         Camera.Size selected = sizes.get(0);         params.setPreviewSize(selected.width,selected.height);         mCamera.setParameters(params);         mCamera.startPreview();     }     @Override     public void surfaceCreated(SurfaceHolder holder) {         try {             mCamera.setPreviewDisplay(mPreview.getHolder());         } catch (Exception e) {             e.printStackTrace();         }     }     @Override     public void surfaceDestroyed(SurfaceHolder holder) {         Log.i("PREVIEW","surfaceDestroyed");     } }