2011-09-22 24 views
11

Quiero tomar una captura de pantalla a pantalla programáticamente, por ejemplo, una de la pantalla de inicio de Android o un menú. ¿Cómo puedo obtener una vista de la pantalla de inicio en mi aplicación? ¡Quiero tomarlo programáticamente! ¡No importa si requiere el modo raíz!¿Cómo tomar la captura de pantalla programáticamente?

¡Ayúdeme por favor y disculpe por mi inglés!

+0

¡Oh chasquido! Acabo de darme cuenta (después de publicar mi respuesta por supuesto -_-): ¿te refieres desde una aplicación de Android? –

+8

¡Quiero llevarlo programáticamente! – Nolesh

+1

¿Qué hay de esta pregunta? Http://stackoverflow.com/questions/2661536/screenshot-android – Tima

Respuesta

13

Uso siguiente código

Bitmap bitmap; 
View v1 = MyView.getRootView(); 
v1.setDrawingCacheEnabled(true); 
bitmap = Bitmap.createBitmap(v1.getDrawingCache()); 
v1.setDrawingCacheEnabled(false); 

Aquí MyView es la vista a través del cual necesita incluir en la pantalla.

+6

Esto solo toma una captura de pantalla de la aplicación activa solamente. No toda la pantalla de Android. –

+0

@NguyenMinhBinh .. eche un vistazo ..http: //stackoverflow.com/questions/3067586/how-to-capture-the-android-device-screen-content/8504958#8504958 ..... esto puede ayudar usted ... –

6

Siga el enlace https://code.google.com/p/android-screenshot-library/downloads/list que le permite a toda pantalla de cualquier pantalla no sólo su aplicación

adb shell/system/bin/screencap -p /sdcard/img.png este es un comando shell toma pantalla simple y rápido

Prueba este

Process sh = Runtime.getRuntime().exec("su", null,null); 
    OutputStream os = sh.getOutputStream(); 
    os.write(("/system/bin/screencap -p " + "/sdcard/img.png").getBytes("ASCII")); 
      os.flush(); 
      os.close(); 
      sh.waitFor(); 
+0

Tengo 2 dispositivos (Android v2.2 y v2.3.3) que no tienen el archivo 'screencap' en el directorio'/system/bin'. Entonces no me conviene. – Nolesh

+0

@ares puedes probar el enlace de arriba. –

+0

¿describiría más cz pero lo intenté pero no estoy obteniendo el resultado? –

0

En el adb shell puede utilizar comandos como

adb shell screencap -p /sdcard/screen.png 
adb pull /sdcard/screen.png 
adb shell rm /sdcard/screen.png 

Encontré este código en esta guía en How to take a screenshot on Android. Puede consultarlo para obtener más detalles.Espero que esto ayude.

Cuestiones relacionadas