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

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

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

Coroutine- A complete tutorial

 What are coroutines? To know about coroutine, first you need to know about asynchronous programming, thread and multithreading concept. What is a thread? Thread describes in which context the function or sequence of instructions should be executed. So, every block of code or functions runs in a thread, right? Also, you can load multiple threads to perform different block of codes  How to start a thread? Thread thread = new Thread(){     public void run(){       System.out.println("This is a thread");     }   }     thread.start(); So when coming to android, before learning about coroutines we need to discuss some scenarios. Normally how an app works when user launch an application. When user launchers the application, a main thread is created. This thread is intended to do small operations like button clicks, UI interaction , small mathematical operations. We cant perform long running op...