Skip to main content

Camera without preview in android


Camera sample program without preview/How to take photo without a preview in android program

package com.sample

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.hardware.Camera;
import android.hardware.Camera.Parameters;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.widget.ImageView;

public class TakePicture extends Activity implements SurfaceHolder.Callback
{
      //a variable to store a reference to the Image View at the main.xml file
      private ImageView iv_image;
      //a variable to store a reference to the Surface View at the main.xml file
    private SurfaceView sv;
   
    //a bitmap to display the captured image
      private Bitmap bmp;
     
      //Camera variables
      //a surface holder
      private SurfaceHolder sHolder
      //a variable to control the camera
      private Camera mCamera;
      //the camera parameters
      private Parameters parameters;

     
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        //get the Image View at the main.xml file
        iv_image = (ImageView) findViewById(R.id.imageView);
       
        //get the Surface View at the main.xml file
        sv = (SurfaceView) findViewById(R.id.surfaceView);
       
        //Get a surface
        sHolder = sv.getHolder();
       
        //add the callback interface methods defined below as the Surface   View callbacks
        sHolder.addCallback(this);
       
        //tells Android that this surface will have its data constantly replaced
        sHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
    }


      public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3)
      {
             //get camera parameters
             parameters = mCamera.getParameters();
             
             //set camera parameters
           mCamera.setParameters(parameters);
           mCamera.startPreview();
          
           //sets what code should be executed after the picture is taken
           Camera.PictureCallback mCall = new Camera.PictureCallback()
           {
           
             public void onPictureTaken(byte[] data, Camera camera)
             {
                   //decode the data obtained by the camera into a Bitmap
                   bmp = BitmapFactory.decodeByteArray(data, 0, data.length);
                   //set the iv_image
                   iv_image.setImageBitmap(bmp);
                   FileOutputStream outStream = null;
                        try{
                            outStream = new FileOutputStream("/sdcard/Image"+System.currentTimeMillis()+".jpg");
                            outStream.write(data);
                            outStream.close();
                        } catch (FileNotFoundException e){
                            Log.d("CAMERA", e.getMessage());
                        } catch (IOException e){
                            Log.d("CAMERA", e.getMessage());
                        }
             }
           };
          
           mCamera.takePicture(nullnull, mCall);
      }


      public void surfaceCreated(SurfaceHolder holder)
      {
            // The Surface has been created, acquire the camera and tell it where
        // to draw the preview.
        mCamera = Camera.open();
        try {
           mCamera.setPreviewDisplay(holder);
           
        } catch (IOException exception) {
            mCamera.release();
            mCamera = null;
        }
      }


      public void surfaceDestroyed(SurfaceHolder holder)
      {
            //stop the preview
            mCamera.stopPreview();
            //release the camera
        mCamera.release();
        //unbind the camera from this object
        mCamera = null;
      } 
}


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
                  <SurfaceView
                  android:id="@+id/surfaceView"
                  android:layout_height="match_parent"
                  android:layout_width="match_parent">
                  </SurfaceView>
                  <ImageView
                  android:layout_width="wrap_content"
                  android:layout_height="wrap_content"
                  android:id="@+id/imageView">
                  </ImageView>
</LinearLayout>


Comments

Popular posts from this blog

Custom Spinner in Android

Custom Spinner in Android/Spinner using custom adapter/spinner with icon and text  In this tutorial, i'll show you to customizing spinner in different methods.  To change the normal display of spinner view, add background image using the code " android:background="@drawable/myspinner_background" in the xml. You can also make it customizable by setting up an xml file in drawable folder Custom display with icon in the spinner   main.xml <? xml version = "1.0" encoding = "utf-8" ?> < LinearLayout xmlns:android = "http://schemas.android.com/apk/res/android"     android:orientation = "vertical"     android:layout_width = "fill_parent"     android:layout_height = "fill_parent"     >     < Spinner     android:drawSelectorOnTop = "true"     android:id = "@+id/spinner1"     android:layout_width = "match_parent"     and...

Capture image without surface view as background service in android

Capture image without user knowledge in android/Capture image as background service in android/Take photo without preview in android/ Camera without preview in android  package com.example.picture; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import android.app.Service; import android.content.Context; import android.content.Intent; import android.hardware.Camera; import android.hardware.Camera.Parameters; import android.media.AudioManager; import android.os.IBinder; import android.util.Log; import android.view.SurfaceHolder; import android.view.SurfaceView; public class CameraService extends Service {       //Camera variables       //a surface holder       private SurfaceHolder sHolder ;        //a variable to control the camera       private Camera mCamera ;   ...

Open front camera in android program

How to access front camera in android/get number of cameras in android/Program to open front camera in android Using the code explained below, we can easily find out number of cameras in your android device. Camera.CameraInfo cameraInfo = new Camera.CameraInfo();         Log. d ( "No of cameras" ,Camera. getNumberOfCameras ()+ "" );         for ( int camNo = 0; camNo < Camera. getNumberOfCameras (); camNo++) {             CameraInfo camInfo = new CameraInfo();             Camera. getCameraInfo (camNo, camInfo);                         if (camInfo. facing ==(Camera.CameraInfo. CAMERA_FACING_FRONT )) {                 mCam...