Hi friends,

     i have to take picture from my application and need to store it
database.  i used following preview code in my app


class Preview extends SurfaceView implements SurfaceHolder.Callback
{ // <1>
  private static final String TAG = "Preview";

  SurfaceHolder mHolder;  // <2>
  public Camera camera;
  Size mPreviewSize;

  List<Size> mSupportedPreviewSizes;

  Preview(Context context) {
    super(context);

    // Install a SurfaceHolder.Callback so we get notified when the
    // underlying surface is created and destroyed.
    mHolder = getHolder();  // <4>
    mHolder.addCallback(this);  // <5>
    mHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS); // <6>
  }



  // Called once the holder is ready
  public void surfaceCreated(SurfaceHolder holder) {  // <7>
    // The Surface has been created, acquire the camera and tell it
where
    // to draw.
    camera = Camera.open(); // <8>
    try {

      camera.setPreviewDisplay(holder);  // <9>

      camera.setPreviewCallback(new PreviewCallback() { // <10>
        // Called for each frame previewed
        public void onPreviewFrame(byte[] data, Camera camera) {  //
<11>
          Log.d(TAG, "onPreviewFrame called at: " +
System.currentTimeMillis());
          Preview.this.invalidate();  // <12>
        }
      });
    } catch (IOException e) { // <13>
      e.printStackTrace();
    }

  }

  // Called when the holder is destroyed
  public void surfaceDestroyed(SurfaceHolder holder) {  // <14>
          Log.d(TAG,"Stopping preview in SurfaceDestroyed().");
                camera.setPreviewCallback(null);

          camera.stopPreview();
    camera.release();
   // camera = null;
  }

  // Called when holder has changed
  public void surfaceChanged(SurfaceHolder holder, int format, int w,
int h) { // <15>

          Camera.Parameters p = camera.getParameters();
                p.setPreviewSize(w, h);
                 camera.setParameters(p);

    camera.startPreview();
  }
  public void setCamera(Camera camera) {
      camera = camera;
      if (camera != null) {
          mSupportedPreviewSizes =
camera.getParameters().getSupportedPreviewSizes();
          requestLayout();
      }
  }

  public void switchCamera(Camera camera) {
     setCamera(camera);
     try {
         camera.setPreviewDisplay(mHolder);
     } catch (IOException exception) {
         Log.e(TAG, "IOException caused by setPreviewDisplay()",
exception);
     }
     Camera.Parameters parameters = camera.getParameters();
     parameters.setPreviewSize(mPreviewSize.width,
mPreviewSize.height);
     requestLayout();

     camera.setParameters(parameters);
  }

}





the same code working well in samsung galaxy tab(model no GT-P1010).
but the camera preview is not clear in samsung galaxy Verizon (model
SCH-I800). The preview is very blurry, but the photo it takes is
good.  what might be problem is it there any fault in my code?  how to
solve this?


Thanks

-- 
You received this message because you are subscribed to the Google
Groups "Android Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/android-developers?hl=en

Reply via email to