What exception does it throw?

On Jun 11, 1:29 pm, Sharmila <[email protected]> wrote:
> Hi everyone,
> this is the code that I have for camera preview and image capture.I am
> trying to do camera preview and as I press the space button I am
> trying to take picture and save it in the picture gallery of the
> Android development phone.
> The code compiles fine,but as I press the space button,it captures the
> image and throws an exception and closes the application...
> I have no idea how to fix this.I have looked in a lot of places but
> haven't found a way to solve my problem.
> I desperately need help...
> Thanks!
> Sharmila.
>
> /**
>  * Copyright (c) 2007, Google Inc.
>  *
>  * Licensed under the Apache License, Version 2.0 (the "License");
>  * you may not use this file except in compliance with the License.
>  * You may obtain a copy of the License at
>  *
>  *    http://www.apache.org/licenses/LICENSE-2.0
>  *
>  * Unless required by applicable law or agreed to in writing,
> software
>  * distributed under the License is distributed on an "AS IS" BASIS,
>  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or
> implied.
>  * See the License for the specific language governing permissions
> and
>  * limitations under the License.
>  */
>
> package com.android.cameraapitest;
>
> import java.io.FileNotFoundException;
> import java.io.OutputStream;
>
> import android.app.Activity;
> import android.content.Intent;
> import android.graphics.Bitmap;
> import android.graphics.Canvas;
> import android.graphics.Paint;
> import android.graphics.PixelFormat;
> import android.graphics.Rect;
> import android.net.Uri;
> import android.os.Handler;
> import android.os.Message;
> import android.os.Bundle;
> import android.provider.MediaStore.Images;
> import android.provider.MediaStore.Video;
> import android.view.Menu;
> import android.view.MenuItem;
> import android.view.SurfaceHolder;
> import android.view.SurfaceView;
> import android.view.KeyEvent;
> import android.hardware.Camera;
>
> import android.text.Layout;
> import android.util.Log;
>
> public class CameraApiTest extends Activity implements
> SurfaceHolder.Callback
> {
>     private static final String TAG = "CameraApiTest";
>     Camera mCamera;
>     boolean mPreviewRunning = false;
>
>     public void onCreate(Bundle icicle)
>     {
>         super.onCreate(icicle);
>
>         Log.e(TAG, "onCreate");
>
>         getWindow().setFormat(PixelFormat.TRANSLUCENT);
>
>         setContentView(R.layout.camera_api_test);
>         mSurfaceView = (SurfaceView)findViewById(R.id.surface);
>
>         mSurfaceHolder = mSurfaceView.getHolder();
>         mSurfaceHolder.addCallback(this);
>         mSurfaceHolder.setType
> (SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
>     }
>
>     public boolean onCreateOptionsMenu(android.view.Menu menu) {
>         MenuItem item = menu.add(0, 0, 0, "goto gallery");
>         item.setOnMenuItemClickListener(new
> MenuItem.OnMenuItemClickListener() {
>             public boolean onMenuItemClick(MenuItem item) {
>                 Uri target = Uri.parse("content://media/external/
> images/media");
>                 Intent intent = new Intent(Intent.ACTION_VIEW,
> target);
>                 startActivity(intent);
>                 return true;
>             }
>         });
>         return true;
>     }
>
>     @Override
>     protected void onRestoreInstanceState(Bundle savedInstanceState)
>     {
>         super.onRestoreInstanceState(savedInstanceState);
>     }
>
>     Camera.PictureCallback mPictureCallback = new
> Camera.PictureCallback() {
>         public void onPictureTaken(byte[] data, Camera c) {
>             Log.e(TAG, "PICTURE CALLBACK: data.length = " +
> data.length);
>
>             try {
>                 Bitmap bm = Bitmap.createBitmap
> (mSurfaceHolder.getSurfaceFrame().width(),
>                         mSurfaceHolder.getSurfaceFrame().height
> (),Bitmap.Config.RGB_565);
>                 OutputStream f=openFileOutput
> ("image.jpg",MODE_WORLD_READABLE);
>                   Canvas cnv=mSurfaceHolder.lockCanvas();
>                   cnv.setBitmap(bm);
>                   bm.compress(Bitmap.CompressFormat.JPEG,100,f);
>                   mSurfaceHolder.unlockCanvasAndPost(cnv);
>                         } catch (FileNotFoundException e) {
>                                 // TODO Auto-generated catch block
>                                 e.printStackTrace();
>                         }
>
>             mCamera.startPreview();
>         }
>     };
>
>     public boolean onKeyDown(int keyCode, KeyEvent event)
>     {
>         if (keyCode == KeyEvent.KEYCODE_BACK) {
>             return super.onKeyDown(keyCode, event);
>         }
>
>         if (keyCode == KeyEvent.KEYCODE_SPACE) {
>             mCamera.takePicture(null,null,mPictureCallback);
>             return true;
>         }
>
>         return false;
>     }
>
>     protected void onResume()
>     {
>         Log.e(TAG, "onResume");
>         super.onResume();
>     }
>
>     protected void onSaveInstanceState(Bundle outState)
>     {
>         super.onSaveInstanceState(outState);
>     }
>
>     protected void onStop()
>     {
>         Log.e(TAG, "onStop");
>         super.onStop();
>     }
>
>     public void surfaceCreated(SurfaceHolder holder)
>     {
>         Log.e(TAG, "surfaceCreated");
>         mCamera = Camera.open();
>         //mCamera.startPreview();
>     }
>
>     public void surfaceChanged(SurfaceHolder holder, int format, int
> w, int h)
>     {
>         Log.e(TAG, "surfaceChanged");
>
>         // XXX stopPreview() will crash if preview is not running
>         if (mPreviewRunning) {
>             mCamera.stopPreview();
>         }
>
>         Camera.Parameters p = mCamera.getParameters();
>         p.setPreviewSize(w, h);
>         mCamera.setParameters(p);
>         mCamera.setPreviewDisplay(holder);
>         mCamera.startPreview();
>         mPreviewRunning = true;
>     }
>
>     public void surfaceDestroyed(SurfaceHolder holder)
>     {
>         Log.e(TAG, "surfaceDestroyed");
>         mCamera.stopPreview();
>         mPreviewRunning = false;
>         mCamera.release();
>     }
>
>     private SurfaceView mSurfaceView;
>     private SurfaceHolder mSurfaceHolder;
>
> }
>
>
--~--~---------~--~----~------------~-------~--~----~
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