Guest User

android nullpointer stackoverflow

a guest
Jan 15th, 2013
225
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.71 KB | None | 0 0
  1. package com.example.provescamera;
  2.  
  3. import java.io.IOException;
  4.  
  5. import android.app.Activity;
  6. import android.content.Context;
  7. import android.content.pm.PackageManager;
  8. import android.hardware.Camera;
  9. import android.os.Bundle;
  10. import android.util.Log;
  11. import android.view.SurfaceHolder;
  12. import android.view.SurfaceView;
  13. import android.widget.FrameLayout;
  14.  
  15. public class CameraActivity extends Activity {
  16.  
  17.     private Camera mCamera;
  18.     private CameraPreview mPreview;
  19.  
  20.     @Override
  21.     public void onCreate(Bundle savedInstanceState) {
  22.         super.onCreate(savedInstanceState);
  23.         setContentView(R.layout.activity_main);
  24.  
  25.         // Create an instance of Camera
  26.         mCamera = getCameraInstance();
  27.  
  28.         // Create our Preview view and set it as the content of our activity.
  29.         mPreview = new CameraPreview(this, mCamera);
  30.         FrameLayout preview = (FrameLayout) findViewById(R.id.camera_preview);
  31.         preview.addView(mPreview);
  32.     }
  33.    
  34.     private boolean checkCameraHardware(Context context) {
  35.         if (context.getPackageManager().hasSystemFeature(PackageManager.FEATURE_CAMERA)){
  36.             // this device has a camera
  37.             return true;
  38.         } else {
  39.             // no camera on this device
  40.             return false;
  41.         }
  42.     }
  43.    
  44.     public static Camera getCameraInstance(){
  45.         Camera c = null;
  46.         try {
  47.             c = Camera.open(); // attempt to get a Camera instance
  48.         }
  49.         catch (Exception e){
  50.             // Camera is not available (in use or does not exist)
  51.         }
  52.         return c; // returns null if camera is unavailable
  53.     }
  54.    
  55.     /** A basic Camera preview class */
  56.     public class CameraPreview extends SurfaceView implements SurfaceHolder.Callback {
  57.         private SurfaceHolder mHolder;
  58.         private Camera mCamera;
  59.  
  60.         public CameraPreview(Context context, Camera camera) {
  61.             super(context);
  62.             mCamera = camera;
  63.  
  64.             // Install a SurfaceHolder.Callback so we get notified when the
  65.             // underlying surface is created and destroyed.
  66.             mHolder = getHolder();
  67.             mHolder.addCallback(this);
  68.             // deprecated setting, but required on Android versions prior to 3.0
  69.             mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
  70.         }
  71.  
  72.         public void surfaceCreated(SurfaceHolder holder) {
  73.             // The Surface has been created, now tell the camera where to draw the preview.
  74.             try {
  75.                 mCamera.setPreviewDisplay(holder);
  76.                 mCamera.startPreview();
  77.             } catch (IOException e) {
  78.                 Log.d("debugging", "Error setting camera preview: " + e.getMessage());
  79.             }
  80.         }
  81.  
  82.         public void surfaceDestroyed(SurfaceHolder holder) {
  83.             // empty. Take care of releasing the Camera preview in your activity.
  84.         }
  85.  
  86.         public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
  87.             // If your preview can change or rotate, take care of those events here.
  88.             // Make sure to stop the preview before resizing or reformatting it.
  89.  
  90.             if (mHolder.getSurface() == null){
  91.               // preview surface does not exist
  92.               return;
  93.             }
  94.  
  95.             // stop preview before making changes
  96.             try {
  97.                 mCamera.stopPreview();
  98.             } catch (Exception e){
  99.               // ignore: tried to stop a non-existent preview
  100.             }
  101.  
  102.             // set preview size and make any resize, rotate or
  103.             // reformatting changes here
  104.  
  105.             // start preview with new settings
  106.             try {
  107.                 mCamera.setPreviewDisplay(mHolder);
  108.                 mCamera.startPreview();
  109.  
  110.             } catch (Exception e){
  111.                 Log.d("debugging", "Error starting camera preview: " + e.getMessage());
  112.             }
  113.         }
  114.     }
  115. }
Advertisement
Add Comment
Please, Sign In to add comment