Skip to main content

Take photo without intent in Android program


Take photo without intent in Android/Capture image without using intent in android/ Camera using preview  in android/Camera preview example/Take photo using surface view in android 





package com.sample;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.app.Activity;
import android.hardware.Camera;
import android.hardware.Camera.PictureCallback;
import android.hardware.Camera.ShutterCallback;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.FrameLayout;

public class CameraExampleActivity extends Activity  {
      private static final String TAG = "CameraDemo";
      Camera camera;
      Preview preview;
      Button buttonClick;

      /** Called when the activity is first created. */
      @Override
      public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);

            preview = new Preview(this);
            ((FrameLayout) findViewById(R.id.preview)).addView(preview);

            buttonClick = (Button) findViewById(R.id.buttonClick);
            buttonClick.setOnClickListener(new OnClickListener() {
                  public void onClick(View v) {
                        preview.camera.takePicture(shutterCallback, rawCallback,
                                    jpegCallback);
                  }
            });

            Log.d(TAG, "onCreate'd");
      }

      ShutterCallback shutterCallback = new ShutterCallback() {
            public void onShutter() {
                  Log.d(TAG, "onShutter'd");
            }
      };

      /** Handles data for raw picture */
      PictureCallback rawCallback = new PictureCallback() {
            public void onPictureTaken(byte[] data, Camera camera) {
                  Log.d(TAG, "onPictureTaken - raw");
            }
      };

      /** Handles data for jpeg picture */
      PictureCallback jpegCallback = new PictureCallback() {
            public void onPictureTaken(byte[] data, Camera camera) {
                  FileOutputStream outStream = null;
                  try {
                       
                        outStream = new FileOutputStream(String.format(
                                    "/sdcard/%d.jpg", System.currentTimeMillis()));
                        outStream.write(data);
                        outStream.close();
                       
                  } catch (FileNotFoundException e) {
                        e.printStackTrace();
                  } catch (IOException e) {
                        e.printStackTrace();
                  }
           
            }
      };

}

package com.sample;

import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.hardware.Camera;
import android.hardware.Camera.PreviewCallback;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;

public class Preview  extends SurfaceView implements SurfaceHolder.Callback {
                private static final String TAG = "Preview";

                SurfaceHolder mHolder;
                public Camera camera;

                Preview(Context context) {
                                super(context);

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

                public void surfaceCreated(SurfaceHolder holder) {
                                // The Surface has been created, acquire the camera and tell it where
                                // to draw.
                                camera = Camera.open();
                                try {
                                                camera.setPreviewDisplay(holder);

                                                camera.setPreviewCallback(new PreviewCallback() {

                                                                public void onPreviewFrame(byte[] data, Camera arg1) {
//                                                           
                                                                                Preview.this.invalidate();
                                                                }
                                                });
                                } catch (IOException e) {
                                                e.printStackTrace();
                                }
                }

                public void surfaceDestroyed(SurfaceHolder holder) {
                                // Surface will be destroyed when we return, so stop the preview.
                                // Because the CameraDevice object is not a shared resource, it's very
                                // important to release it when the activity is paused.
                                camera.stopPreview();
                                camera = null;
                }

                public void surfaceChanged(SurfaceHolder holder, int format, int w, int h) {
                                // Now that the size is known, set up the camera parameters and begin
                                // the preview.
                                Camera.Parameters parameters = camera.getParameters();
                                parameters.setPreviewSize(w, h);
                                camera.setParameters(parameters);
                                camera.startPreview();
                }

}


<uses-permission android:name="android.permission.CAMERA"/>

See more





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