Spanish Capturar pantalla (Solucionado)

23021959Pepe

Member
Licensed User
Longtime User
Buenos días, existe alguna forma de capturar la pantalla de lo que esta mostrando en ese momento el móvil y guardarla en un archivo de formato por ejemplo png, gif, jpg etc...
Mi intención es guardar la pantalla de Google Maps en la cual se muestra unas posiciones señaladas con unos indicadores.

Saludos
Pepe
 

23021959Pepe

Member
Licensed User
Longtime User
Hola Descartex, gracias por tu sugerencia.
Buscando por el foro conseguí el archivo en donde esta el código que me sugieres (adjunto archivo por si a algún compañero le puede servir).
Aunque no he profundizado mucho en su comportamiento y al no localizar algo que se ajuste un poco más a lo que necesito, intentare basándome en el código del programa, haber si consigo a través de interceptar la pulsación de alguna de las teclas del móvil, que me guarde la pantalla de Google Maps que es la que me interesa.

Saludos
Pepe
 

Attachments

  • takescreenshot.zip
    5.9 KB · Views: 606

23021959Pepe

Member
Licensed User
Longtime User
Hola adrianxp, te sugiero que abras un nuevo post para lo que preguntas.
Yo lo que hice fue capturar pantallas de mi aplicación a través de la tecla de volumen + y basandome en el Sub TakeScreenshot, que viene en la aplicación takescreenshot.zip del archivo que deje.

B4X:
Sub Activity_KeyPress (KeyCode As Int) As Boolean
    Dim Answ As Int
    Dim txt As String
   
    Select KeyCode
    Case KeyCodes.KEYCODE_VOLUME_UP
        TakeScreenshot
    End Select
End Sub

B4X:
Sub TakeScreenshot
    DateTime.DateFormat = "ddMMyyyyHHmmss"
      now = DateTime.now
      dt = DateTime.Date(now) 
      Obj1.Target = Obj1.GetActivityBA
      Obj1.Target = Obj1.GetField("vg")
      bmp.InitializeMutable(Activity.Width, Activity.Height)
    c.Initialize2(bmp)
    Dim args(1) As Object
    Dim types(1) As String
    Obj2.Target = c
    Obj2.Target = Obj2.GetField("canvas")
    args(0) = Obj2.Target
    types(0) = "android.graphics.Canvas"
    Obj1.RunMethod4("draw", args, types)
    Dim Out As OutputStream
    Out = File.OpenOutput(File.DirDefaultExternal & "/Mapas" , dt & ".png", False)
    bmp.WriteToStream(Out, 100, "PNG")
    Out.Close
    ToastMessageShow("Guardando en " & File.DirDefaultExternal & "\Mapas\" & dt & ".png", False)
End Sub

Saludos
 
Top