¿Cómo tomar la captura de pantalla de la página de actividad ENTERO mediante programación?

¿Cómo puedo tomar una captura de pantalla de toda la actividad en Android, incluso si el contenido no es visible? Ex. Tomar una captura de pantalla de chat completo y luego generar un archivo de imagen?

Introduzca aquí la descripción de la imagen

Quiero el área invisible del screenshot también.

Gracias

3 Solutions collect form web for “¿Cómo tomar la captura de pantalla de la página de actividad ENTERO mediante programación?”

Una forma es extraer el mapa de bits de la pantalla actual y guardarlo. Prueba esto:

public void takeScreenshot(){ Bitmap bitmap = getScreenBitmap(); // Get the bitmap saveTheBitmap(bitmap); // Save it to the external storage device. } public Bitmap getScreenBitmap() { View v= findViewById(android.R.id.content).getRootView(); v.setDrawingCacheEnabled(true); v.measure(MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED), MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED)); v.layout(0, 0, v.getMeasuredWidth(), v.getMeasuredHeight()); v.buildDrawingCache(true); Bitmap b = Bitmap.createBitmap(v.getDrawingCache()); v.setDrawingCacheEnabled(false); // clear drawing cache return b; } 

Android toma la captura de pantalla mediante programación

Esta es una forma de tomar "captura de pantalla" de una vista. No lo he probado para decir si funciona

 //View v is the root view/parent of your layout, for example LinearLayout or RelativeLayout (layout where you have placed content of which you want to take screenshot) private Bitmap getBitmapFromView(View v) { Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas (bitmap); v.draw(canvas); // Returns screenshot return bitmap; } 

Public class MainActivity extends Actividad {

 ImageView imageView = null; ScrollView sv = null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); sv = (ScrollView) findViewById(R.id.ssscrollView); imageView = (ImageView) findViewById(R.id.imgView); Button myBtn = (Button) findViewById(R.id.btn); myBtn.setOnClickListener(new View.OnClickListener() { @SuppressWarnings("deprecation") @Override public void onClick(View v) { View v1 = sv.getRootView(); v1.setDrawingCacheEnabled(true); Bitmap bm = getBitmapFromView(v1); @SuppressWarnings("deprecation") BitmapDrawable bitmapDrawable = new BitmapDrawable(bm); ImageView view2 = (ImageView) findViewById(R.id.imgView); view2.setBackgroundDrawable(bitmapDrawable); } }); } private Bitmap getBitmapFromView(View v) { Bitmap bitmap = Bitmap.createBitmap(v.getWidth(), v.getHeight(), Bitmap.Config.ARGB_8888); Canvas canvas = new Canvas(bitmap); v.draw(canvas); return bitmap; } 

}

  • Hacer algunas cosas de la interfaz de usuario de Android en un subproceso no UI
  • Clase Java, Arraylist con varios tipos
  • Java.lang.IllegalArgumentException: No se puede tener un viewTypeCount <1
  • ¿Qué significa que un método esté obsoleto y cómo puedo resolver los errores resultantes?
  • Adquisición del código de moneda de un país
  • Añadiendo a Fragmento ArrayAdapter de Activity AlertDialog
  • Cómo cambiar el ancho de trazo de una forma de programación en Android?
  • Falla de confiabilidad de la aplicación en la aplicación v3
  • Consiga un comportamiento igual que AppBarLayout para cualquier ViewGroup en CoordinatorLayout
  • Android - La cobertura de código de Jacoco ignora las pruebas Robolectric
  • Comprueba si es el primer usuario de mi aplicación en Android
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.