¿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?
- Android: mover los botones libremente en el editor de diseño gráfico de Eclipse
- Android FragmentTabHost - ¿Todavía no está completamente horneado?
- Android: ¿Cómo aplicar una variable a un brindis?
- Negación de permisos al intentar acceder a contactos en Android
- Cómo ordenar varios ArrayLists todos juntos en java
Quiero el área invisible del screenshot también.
Gracias
- No se puede resolver la clase com.google.android.gms.plus.Plus
- ¿Conversión de json string a objeto java?
- Integración de ZbarScanner con la aplicación Android
- Error: no se pudo encontrar el destino con la cadena de hash 'android-22'
- Manera portable de garantizar que el campo del año de un DateFormat es solamente dos dígitos
- Convertir Vec4i a Java openCV
- ¿Puedo de alguna manera alias R en Android?
- Obtener ruta de acceso y nombre de archivo de la imagen de galería seleccionada en Android
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; }
}