¿Alguna vez quiso tomar una captura de pantalla perfecta de una vista en particular, o tal vez algún elemento de la interfaz de usuario arruinó su captura de pantalla favorita? No te preocupes mucho, este artículo Geeks for Geeks te ayudará a lograrlo creando una aplicación desde cero. Como a continuación se muestra el código para el nombre del título en este artículo, vamos a discutir cómo tomar capturas de pantalla mediante programación en Android.
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 Kotlin como lenguaje de programación.
Paso 2: diseñar el archivo de diseño
Comenzaremos por comenzar a diseñar el diseño que desea capturar, aquí agregaremos solo una vista de texto básica y luego tomaremos la captura de pantalla. 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"?> <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/container" tools:context=".GeeksforGeeksActivity"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="I am screenshot" android:id="@+id/textView" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent"/> </android.support.constraint.ConstraintLayout>
Paso 3: hacer que el código funcione
Ahora agregaremos el código que es el quid principal del tema, esto hará que realmente tome la captura de pantalla y luego la almacene en su dispositivo.
Kotlin
private fun takeScreenShot(view: View): Bitmap { val thescreenshot = Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888) val draw = Canvas(thescreenshot) val drawGeeks = view.background if (drawGeeks != null) drawGeeks.draw(draw) else draw.drawColor(Color.BLACK) view.draw(draw) return thescreenshot }
Vista se refiere a la vista de diseño de la que deseamos capturar una instantánea. Tenemos una vista con id como contenedor en nuestro código.
Paso 4: Hacer cosas aún mejores
También podemos agregar los métodos a continuación al archivo para que podamos lograr alguna funcionalidad adicional y luego tomar la captura de pantalla nuevamente para que sea mejor. En este caso, la vista será la identificación de ConstraintLayout (es decir, contenedor). En este método, primero construiremos un mapa de bits vacío, que debemos devolver como el valor de la función. Luego construimos un lienzo y usamos el mapa de bits para dibujar en él. Toma el telón de fondo de la vista en bgDrawable. Y ahora, usaremos view.draw para dibujar la vista en el lienzo (lienzo). Finalmente, devolvemos el mapa de bits que creamos, que es el mapa de bits de la vista. Ahora, en el archivo de actividad, llame al método mencionado anteriormente de la siguiente manera:
Kotlin
class GeeksforGeeksActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val geeksforgeekslLayout: ConstraintLayout = findViewById(R.id.gfgContainer) takeScreenShot(geeksforgeekslLayout) } private fun takeScreenShot(view: View): Bitmap { val screenshot= Bitmap.createBitmap(view.width, view.height, Bitmap.Config.ARGB_8888) val drawBoard = Canvas(returnedBitmap) val actualScreen = view.background if (actualScreen != null) actualScreen.draw(drawBoard) else drawBoard.drawColor(Color.WHITE) view.draw(drawBoard) return returnedBitmap } }
Producción:
Ahora, esta es la vista que creamos en el paso n.º 1, es perfecta para situaciones en las que necesitamos concluir o aislar alguna información especial del heno de información y también aislar la información.
Conclusión
Este método se puede usar para producir mapas de bits para cualquier vista que desee, así como capturas de pantalla de cualquier widget, como ImageView o TextView.
Publicación traducida automáticamente
Artículo escrito por icloudanshu y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA