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
-~----------~----~----~----~------~----~------~--~---