En cada teléfono Android, tenemos una función para tomar capturas de pantalla de las pantallas. En este artículo, vamos a explicar cómo tomar capturas de pantalla mediante programación. qué
Implementación paso a paso
Paso 1: Crear un nuevo proyecto
Para crear un nuevo proyecto en Android Studio, consulte Cómo crear/iniciar un nuevo proyecto en Android Studio . Tenga en cuenta que seleccione Java como lenguaje de programación.
Paso 2: Agregar permiso al archivo AndroidManifest.xml
Agregue los siguientes permisos al archivo AndroidManifest.xml
<usos-permiso android:name=”android.permission.READ_EXTERNAL_STORAGE”/>
<usos-permiso android:name=”android.permission.WRITE_EXTERNAL_STORAGE”/>
Paso 3: trabajar con el archivo activity_main.xml
Vaya a la aplicación > res > diseño > actividad_principal.xml y agregue el siguiente código a ese archivo. A continuación se muestra el código para el archivo activity_main.xml .
XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:gravity="center" android:orientation="vertical" tools:context=".MainActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Click on button to take screenshot" android:textColor="#000" android:textSize="20dp" android:textStyle="bold" /> <Button android:id="@+id/clickme" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginTop="10dp" android:background="@color/colorPrimary" android:text="Click Me" /> </LinearLayout>
Paso 4: Agregue un archivo de audio a la carpeta Raw
Por favor refiérase a un
Paso 5: trabajar con el archivo MainActivity.java
Vaya al archivo MainActivity.java y consulte el siguiente código. A continuación se muestra el código del archivo MainActivity.java . Se agregan comentarios dentro del código para comprender el código con más detalle.
Java
import android.Manifest; import android.app.Activity; import android.content.pm.PackageManager; import android.graphics.Bitmap; import android.media.MediaPlayer; import android.os.Bundle; import android.os.Environment; import android.view.View; import android.widget.Button; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import androidx.core.app.ActivityCompat; import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.io.IOException; import java.util.Date; public class MainActivity extends AppCompatActivity { Button click; private static final int REQUEST_EXTERNAL_STORAGe = 1; private static String[] permissionstorage = {Manifest.permission.WRITE_EXTERNAL_STORAGE, Manifest.permission.READ_EXTERNAL_STORAGE}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); click = findViewById(R.id.clickme); verifystoragepermissions(this); // adding beep sound final MediaPlayer mediaPlayer = MediaPlayer.create(this, R.raw.beep); click.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this, "You just Captured a Screenshot," + " Open Gallery/ File Storage to view your captured Screenshot", Toast.LENGTH_SHORT).show(); screenshot(getWindow().getDecorView().getRootView(), "result"); mediaPlayer.start(); } }); } protected static File screenshot(View view, String filename) { Date date = new Date(); // Here we are initialising the format of our image name CharSequence format = android.text.format.DateFormat.format("yyyy-MM-dd_hh:mm:ss", date); try { // Initialising the directory of storage String dirpath = Environment.getExternalStorageDirectory() + ""; File file = new File(dirpath); if (!file.exists()) { boolean mkdir = file.mkdir(); } // File name String path = dirpath + "/" + filename + "-" + format + ".jpeg"; view.setDrawingCacheEnabled(true); Bitmap bitmap = Bitmap.createBitmap(view.getDrawingCache()); view.setDrawingCacheEnabled(false); File imageurl = new File(path); FileOutputStream outputStream = new FileOutputStream(imageurl); bitmap.compress(Bitmap.CompressFormat.JPEG, 50, outputStream); outputStream.flush(); outputStream.close(); return imageurl; } catch (FileNotFoundException io) { io.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } // verifying if storage permission is given or not public static void verifystoragepermissions(Activity activity) { int permissions = ActivityCompat.checkSelfPermission(activity, Manifest.permission.WRITE_EXTERNAL_STORAGE); // If storage permission is not given then request for External Storage Permission if (permissions != PackageManager.PERMISSION_GRANTED) { ActivityCompat.requestPermissions(activity, permissionstorage, REQUEST_EXTERNAL_STORAGe); } } }