Advertisement
Guest User

FastSnapshot Wrapper

a guest
Jun 15th, 2012
18
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.98 KB | None | 0 0
  1. package de.tionsys.fastshot;
  2.  
  3. import android.hardware.Camera;
  4. import android.hardware.Camera.Size;
  5. import android.view.SurfaceHolder;
  6. import android.view.SurfaceView;
  7. import android.widget.Toast;
  8.  
  9. public class FastSnapshotPreview
  10. {
  11.     Camera cam = null;
  12.     SurfaceView view = null;
  13.     SurfaceHolder holder = null;
  14.    
  15.     public FastSnapshotPreview(Camera camera, SurfaceView sfv)
  16.     {
  17.         cam = camera;
  18.         view = sfv;
  19.         holder = sfv.getHolder();
  20.         holder.addCallback(callback);
  21.     }
  22.    
  23.     private void initPreview(int width, int height)
  24.     {
  25.         if(cam == null || holder.getSurface() == null) return;
  26.         try
  27.         {
  28.             cam.setPreviewDisplay(holder);
  29.             Camera.Parameters parameters = cam.getParameters();
  30.             Size result = null;
  31.             for (Size size : parameters.getSupportedPreviewSizes())
  32.             {
  33.                 if(size.width <= width && size.height <= height)
  34.                 {
  35.                     if(result == null)
  36.                     {
  37.                       result=size;
  38.                     }
  39.                     else
  40.                     {
  41.                         int resultArea = result.width*result.height;
  42.                         int newArea = size.width*size.height;
  43.                         if(newArea > resultArea)
  44.                         {
  45.                             result = size;
  46.                         }
  47.                     }
  48.                 }
  49.             }
  50.            
  51.             if (result != null)
  52.             {
  53.                 Toast.makeText(FastSnapshotActivity.master, "Parameter werden gesetzt !", 5).show();
  54.                 parameters.setPreviewSize(result.width, result.height);
  55.                 cam.setParameters(parameters);
  56.             }
  57.         }
  58.         catch (Throwable t)
  59.         {
  60.             // do nothings;
  61.         }
  62.     }
  63.    
  64.     private void startLivePreview()
  65.     {
  66.         if(cam == null) return;
  67.         cam.startPreview();
  68.     }
  69.    
  70.     SurfaceHolder.Callback callback = new SurfaceHolder.Callback()
  71.     {
  72.         public void surfaceCreated(SurfaceHolder holder)
  73.         {
  74.             // do nothings;
  75.         }
  76.        
  77.         public void surfaceChanged(SurfaceHolder holder, int format, int width, int height)
  78.         {
  79.             initPreview(width, height);
  80.             startLivePreview();
  81.         }
  82.        
  83.         public void surfaceDestroyed(SurfaceHolder holder)
  84.         {
  85.             // do nothings;
  86.         }
  87.       };
  88. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement