Introduction
- public void onClick(View v) {
- Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(cameraIntent, CAMERA_REQUEST);
Now you will create a method, OnActivityResult(), to be called when the activity you started has finished. In this, you will use a Bitmap class object to draw the image. In this you will write this code:
- if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
- Bitmap photo = (Bitmap) data.getExtras().get("data");
- imageView.setImageBitmap(photo);
- }
Step 1
Now create an XML file with the following content:
- <?xml version="1.0" encoding="utf-8"?>
- <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="fill_parent"
- android:layout_height="fill_parent"
- android:background="#80BFFF">
- <Button android:id="@+id/button1"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Click">
- </Button>
- <ImageView
- android:id="@+id/imageView1"
- android:layout_height="fill_parent"
- android:layout_width="fill_parent"
- android:layout_centerHorizontal="true">
- </ImageView>
- <ImageView
- android:id="@+id/imageView2"
- android:layout_height="fill_parent"
- android:layout_width="fill_parent"
- android:layout_centerHorizontal="true">
- </ImageView>
- <Button android:id="@+id/button2"
- android:layout_width="wrap_content"
- android:layout_height="wrap_content"
- android:text="Crop"
- android:layout_alignParentBottom="true">
- </Button>
- </RelativeLayout>
Step 2
- package com.imagecaptureapplication;
- import android.app.Activity;
- import android.content.Intent;
- import android.graphics.Bitmap;
- import android.os.Bundle;
- import android.view.View;
- import android.widget.Button;
- import android.widget.ImageView;
- public class MainActivity extends Activity {
- private static final int CAMERA_REQUEST = 1888;
- ImageView imageView,imageView2;
- Bitmap photo;
- Button crop;
- @Override
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- imageView = (ImageView)this.findViewById(R.id.imageView1);
- imageView2 = (ImageView)this.findViewById(R.id.imageView1);
- Button photoButton = (Button) this.findViewById(R.id.button1);
- crop=(Button)findViewById(R.id.button2);
- photoButton.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
- startActivityForResult(cameraIntent, CAMERA_REQUEST);
- }
- });
- }
- protected void onActivityResult(int requestCode, int resultCode, Intent data) {
- if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
- photo = (Bitmap) data.getExtras().get("data");
- imageView.setImageBitmap(photo);
- }
- performcrop();
- }
- private void performcrop() {
- crop.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View view) {
- Bitmap croppedBmp = Bitmap.createBitmap(photo, 0, 0, photo.getWidth(),photo.getHeight()-30);
- imageView2.setImageBitmap(croppedBmp);
- }
- });
- }
- }
Step 3
Add permission to the Android menifest.xml file:
- <?xml version="1.0" encoding="utf-8"?>
- <manifest xmlns:android="http://schemas.android.com/apk/res/android"
- package="com.capture"
- android:versionCode="1"
- android:versionName="1.0" >
- <uses-permission android:name="android.permission.CAMERA" />
- <uses-feature android:name="android.hardware.camera" />
- <uses-feature android:name="android.hardware.camera.autofocus" />
- <uses-sdk
- android:minSdkVersion="7"
- android:targetSdkVersion="16" />
- <application
- android:allowBackup="true"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <activity
- android:name="com.capture.MainActivity"
- android:label="@string/app_name" >
- <intent-filter>
- <action android:name="android.intent.action.MAIN" />
- <category android:name="android.intent.category.LAUNCHER" />
- </intent-filter>
- </activity>
- </application>
- </manifest>
Step 4
Output
Step 5

When you click the button:
After capturing the image:
Step 7
When you press on the button to crop:

Step 6


Sagar PatilPosted Mar 16, 2018, 7:05 AM
Nice article...I need to capture image after 5 seconds of opening camera without user interaction. How can i integrate?