How to create an App to open Camera through Intent and display captured image

 



Step 1:Firstly create a new Android Application. This will create an XML file “activity_main.xml” and a Java File “MainActivity.Java”. Please refer to the pre-requisites to learn more about this step.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/White"
android:orientation="vertical"
android:weightSum="3"
tools:context=".LoginActivity">
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="200dp"
android:layout_margin="30dp"
app:cardCornerRadius="25dp">

<androidx.appcompat.widget.AppCompatImageView
android:id="@+id/parselboy"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:scaleType="fitXY"
app:srcCompat="@drawable/ic_baseline_photo_camera_24" />
<TextView
android:id="@+id/parselboytv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:gravity="center"
android:padding="5dp"
android:text="Click Parsel Boy Pice"
android:textColor="@color/textcolor"
android:textSize="18dp">

</TextView>

</androidx.cardview.widget.CardView>




</LinearLayout>

Step 2:
Add permission in AndroidManifest file in android app

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

Step 3: Now Start Coding in MainActivity. java File

package com.bspl.suriyasareeparselldelevery;

import androidx.appcompat.app.AppCompatActivity;
import androidx.core.content.FileProvider;

import android.app.Activity;
import android.content.Intent;
import android.media.MediaScannerConnection;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
import android.os.Environment;
import android.provider.MediaStore;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
import android.widget.Toast;

import java.io.File;
import java.util.Date;

public class LoginActivity extends Activity {
ImageView camera, parselboyimag, reciverimag;
private static final int CAMERA_REQUEST = 1888;
Button clickimage;
private static final int CAMERA_IMAGE_REQUEST = 101;
private String parselboy, reciverboy;
String imageFolderPath;
Uri outputFileUri;
TextView reciver,parselboytv;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
camera = findViewById(R.id.imageView);
reciverimag = findViewById(R.id.reciver);
parselboyimag = findViewById(R.id.parselboy);
reciver=findViewById(R.id.reciverboytv);
parselboytv=findViewById(R.id.parselboytv);
// Creating folders for Image
imageFolderPath = Environment.getExternalStorageDirectory()
+ "/ParsealImage";
File imagesFolder = new File(imageFolderPath);

if(imagesFolder.exists()){
Toast.makeText(this, "existe", Toast.LENGTH_SHORT).show();
} else {
imagesFolder.mkdirs();

}
reciverimag.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
reciverboy = imageFolderPath + new Date().toString() + "reciver" + ".jpg";
File newfile = new File(reciverboy);
outputFileUri = FileProvider.getUriForFile(LoginActivity.this, BuildConfig.APPLICATION_ID + ".fileProvider", newfile);
captureImage(outputFileUri);

}
});
parselboyimag.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
parselboy = imageFolderPath + new Date().toString() + "parselboy" + ".jpg";
File newfile = new File(parselboy);
outputFileUri = FileProvider.getUriForFile(LoginActivity.this, BuildConfig.APPLICATION_ID + ".fileProvider", newfile);

captureImage(outputFileUri);

}
});

}

public void captureImage(Uri outputFileUri) {
this.outputFileUri = outputFileUri;


Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Log.e("click", "clickparsel boyq");
takePictureIntent.putExtra(MediaStore.EXTRA_OUTPUT, this.outputFileUri);
startActivityForResult(takePictureIntent,
CAMERA_IMAGE_REQUEST);


}

public void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);


if (resultCode == Activity.RESULT_OK && requestCode == CAMERA_IMAGE_REQUEST) {

Toast.makeText(this, "Success",
Toast.LENGTH_SHORT).show();
if (parselboy != null) {
parselboyimag.setImageURI(Uri.parse(parselboy));

parselboytv.setText("");
}
if (reciverboy != null) {
reciverimag.setImageURI(Uri.parse(reciverboy));
reciver.setText("");
}

// MediaScannerConnection.scanFile(this, new String[]{new File(Environment.getExternalStorageDirectory()
// + "/uploadimage/" + imageName).getPath()}, new String[]{"image/jpg"}, null);


} else {
Log.e("Error","error");
}
}

@Override
public void onBackPressed() {
super.onBackPressed();
}
}



Comments

Popular posts from this blog

How to Integrate or Work with Open Street Map (OSM) in an Android App (Kotlin)

ListView in android with api and volley Network Library in android Studio.

how to implement OpenStreetMap in android