Practical No. 23
Practical No. 23
Bitmap;
display it using image view. import android.os.Bundle;
import android.provider.MediaStore;
activity_main.xml import android.view.View;
import android.widget.Button;
<?xml version="1.0" encoding="utf-8"?> import android.widget.ImageView;
<LinearLayout import
xmlns:android="http://schemas.android.com/ap androidx.activity.result.ActivityResultLauncher
k/res/android" ;
android:layout_width="match_parent" import
android:layout_height="match_parent" androidx.activity.result.contract.ActivityResult
android:orientation="vertical" Contracts;
android:padding="16dp"> import
androidx.appcompat.app.AppCompatActivity;
<!-- Button to capture an image -->
<Button public class MainActivity extends
android:id="@+id/captureButton" AppCompatActivity {
android:layout_width="wrap_content"
android:layout_height="wrap_content" private ImageView imageView; // To display
android:textSize="30sp" captured image
android:text="Capture Image" /> private Button captureButton; // Button to
capture image
<!-- ImageView to display captured image --
> @Override
<ImageView protected void onCreate(Bundle
android:id="@+id/imageView" savedInstanceState) {
android:layout_width="300dp" super.onCreate(savedInstanceState);
android:layout_height="300dp" setContentView(R.layout.activity_main);
android:layout_marginTop="16dp"
android:adjustViewBounds="true" // Initialize UI components
android:scaleType="fitCenter" imageView =
android:contentDescription="Captured findViewById(R.id.imageView);
Image" /> captureButton =
</LinearLayout> findViewById(R.id.captureButton);
AndroidManifest.xml </manifest>
activity_main.xml
android:layout_above="@id/recordButton"
android:layout_marginBottom="16dp" />
</RelativeLayout>
MainActivity.java
package com.example.practicalno_23_1;
import android.Manifest;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.net.Uri;
import android.os.Bundle;
import android.provider.MediaStore; recordButton.setOnClickListener(v ->
import android.widget.Button; askCameraPermission());
import android.widget.Toast; }
import android.widget.VideoView;
// Method to check and request camera and
import androidx.annotation.NonNull; audio permissions
import private void askCameraPermission() {
androidx.appcompat.app.AppCompatActivity; if
import androidx.core.app.ActivityCompat; (ContextCompat.checkSelfPermission(this,
import androidx.core.content.ContextCompat; Manifest.permission.CAMERA) !=
PackageManager.PERMISSION_GRANTED ||
public class MainActivity extends
AppCompatActivity { ContextCompat.checkSelfPermission(this,
Manifest.permission.RECORD_AUDIO) !=
private static final int PackageManager.PERMISSION_GRANTED)
VIDEO_REQUEST_CODE = 101; // Request {
code for video recording
private static final int ActivityCompat.requestPermissions(this,
CAMERA_PERMISSION_CODE = 102; // new String[]
Request code for camera permission {Manifest.permission.CAMERA,
Manifest.permission.RECORD_AUDIO},
private Button recordButton; // Button to
start recording CAMERA_PERMISSION_CODE);
private VideoView videoView; // VideoView } else {
to display the recorded video recordVideo(); // If permissions are
private Uri videoUri; // URI to store the granted, start recording video
recorded video }
}
@Override
protected void onCreate(Bundle @Override
savedInstanceState) { public void onRequestPermissionsResult(int
super.onCreate(savedInstanceState); requestCode, @NonNull String[] permissions,
setContentView(R.layout.activity_main); @NonNull int[] grantResults) {
if (requestCode == android:theme="@style/Theme.PracticalNo_23
VIDEO_REQUEST_CODE && resultCode == _1">
RESULT_OK && data != null) {
// Get the URI of the recorded video and <activity
display it in the VideoView android:name=".MainActivity"
videoUri = data.getData(); android:exported="true">
videoView.setVideoURI(videoUri); <intent-filter>
videoView.start(); // Start playing the <action
recorded video android:name="android.intent.action.MAIN" />
} else {
<category
android:name="android.intent.category.LAUN
CHER" />
</intent-filter>
</activity>
</application>
</manifest>