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
Post a Comment