Dim bmp As Bitmap = xCLV.AsView.SnapshotNono della mia app... Sul layout che vado ad aprire ho una clw con due righe contenenti dei dati e devo catturarne l'immagine da salvare premendo un bottone
Dim bmp As Bitmap = xCLV.AsView.Snapshot
Puoi usare il metodo del mio primo post su tutte le View (oggetti non ha significato).Tutti gli oggetti??
Dim xView As B4XView = Button1
Dim Bitmap1 As B4XBitmap = xView.Snapshot
Dim Out As OutputStream
Out = File.OpenOutput(File.DirInternal, "MiaBitmap.png", False)
Bitmap1.WriteToStream(Out, 100, "PNG")
Out.Close
Ok provo io graziePuoi usare il metodo del mio primo post su tutte le View (oggetti non ha significato).
Per salvare una Bitmap ad esempio di un Button:
B4X:Dim xView As B4XView = Button1 Dim Bitmap1 As B4XBitmap = xView.Snapshot Dim Out As OutputStream Out = File.OpenOutput(File.DirInternal, "MiaBitmap.png", False) Bitmap1.WriteToStream(Out, 100, "PNG") Out.Close
(Codice non provato ma dovrebbe funzionare)
clv.sv.ScrollViewInnerPanel.Snapshot
Domani provo poi vi dicoAvevo dato la stessa soluzione per la stessa domanda nel forum internazionale
https://www.b4x.com/android/forum/threads/xcustomlistview-to-image.115769/
Ma l'utente diceva che comunque otteneva lo snapshot solo della parte visibile.
Erel gli suggerì di usare:
L'utente non ha più risposto quindi sospetto che potesse essere stata la soluzione ideale.B4X:clv.sv.ScrollViewInnerPanel.Snapshot
Funziona perfettamente...Puoi usare il metodo del mio primo post su tutte le View (oggetti non ha significato).
Per salvare una Bitmap ad esempio di un Button:
B4X:Dim xView As B4XView = Button1 Dim Bitmap1 As B4XBitmap = xView.Snapshot Dim Out As OutputStream Out = File.OpenOutput(File.DirInternal, "MiaBitmap.png", False) Bitmap1.WriteToStream(Out, 100, "PNG") Out.Close
(Codice non provato ma dovrebbe funzionare)
Nun me fa' domande arcane pure teDomanda… anziché File.DirInternal, per scriverlo in download???
Il file devo metterlo in Download ma mi dice permission denidedNun me fa' domande arcane pure te
(tradotto dal romanesco all'italiano, significa: "Cosa intendi dire, esattamente?".
'Crea un immagine dell'oggetto passato in Download
Sub CreateObj_PNG(obj As B4XView,FileName As String)
Dim xView As B4XView = obj
Dim Bitmap1 As B4XBitmap = xView.Snapshot
Dim Out As OutputStream
Dim rp As RuntimePermissions
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
' 'se il file esiste lo cancello
' If File.Exists(rp.GetSafeDirDefaultExternal(""),FileName & ".png") = True Then
' File.Delete(rp.GetSafeDirDefaultExternal(""),FileName & ".png")
' End If
Out = File.OpenOutput(File.Combine(File.DirRootExternal,"Download"), FileName & ".png", False)
'Out = File.OpenOutput(rp.GetSafeDirDefaultExternal(""), FileName & ".png", False)
Bitmap1.WriteToStream(Out, 100, "PNG")
Out.Close
End Sub
Te la fù vedè mi….E io che ne so come tu lo metti in download?
'Crea un immagine dell'oggetto passato in Download
Sub CreateObj_PNG(obj As B4XView,FileName As String)
Dim xView As B4XView = obj
Dim Bitmap1 As B4XBitmap = xView.Snapshot
Dim Out As OutputStream
Dim rp As RuntimePermissions
rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE)
'se il file esiste lo cancello
If File.Exists(File.Combine(File.DirRootExternal,"Download"),FileName & ".png") = True Then
File.Delete(File.Combine(File.DirRootExternal,"Download"),FileName & ".png")
End If
Out = File.OpenOutput(File.Combine(File.DirRootExternal,"Download"), FileName & ".png", False)
Bitmap1.WriteToStream(Out, 100, "PNG")
Out.Close
End Sub
Credo che non sia corretta la richiesta dei permessi. Ci vuole il Wait For con per l'evento Activity_PermissionResult (Permission As String, Result As Boolean).Il file devo metterlo in Download ma mi dice permission denided
B4X:'Crea un immagine dell'oggetto passato in Download Sub CreateObj_PNG(obj As B4XView,FileName As String) Dim xView As B4XView = obj Dim Bitmap1 As B4XBitmap = xView.Snapshot Dim Out As OutputStream Dim rp As RuntimePermissions rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) ' 'se il file esiste lo cancello ' If File.Exists(rp.GetSafeDirDefaultExternal(""),FileName & ".png") = True Then ' File.Delete(rp.GetSafeDirDefaultExternal(""),FileName & ".png") ' End If Out = File.OpenOutput(File.Combine(File.DirRootExternal,"Download"), FileName & ".png", False) 'Out = File.OpenOutput(rp.GetSafeDirDefaultExternal(""), FileName & ".png", False) Bitmap1.WriteToStream(Out, 100, "PNG") Out.Close End Sub
Funziona solo se hai già dato il permesso e quindi anche se non aspetta fa nulla. Ma su una nuova installazione non và più
Te la fù vedè mi….
B4X:'Crea un immagine dell'oggetto passato in Download Sub CreateObj_PNG(obj As B4XView,FileName As String) Dim xView As B4XView = obj Dim Bitmap1 As B4XBitmap = xView.Snapshot Dim Out As OutputStream Dim rp As RuntimePermissions rp.CheckAndRequest(rp.PERMISSION_WRITE_EXTERNAL_STORAGE) 'se il file esiste lo cancello If File.Exists(File.Combine(File.DirRootExternal,"Download"),FileName & ".png") = True Then File.Delete(File.Combine(File.DirRootExternal,"Download"),FileName & ".png") End If Out = File.OpenOutput(File.Combine(File.DirRootExternal,"Download"), FileName & ".png", False) Bitmap1.WriteToStream(Out, 100, "PNG") Out.Close End Sub
Và
arcane se danno i croccantini non si fanno le domandeNun me fa' domande arcane pure te
Hai ragione la prima volta mi butta fuori dall'app… poi funziona quindi cosa devo fare?Funziona solo se hai già dato il permesso e quindi anche se non aspetta fa nulla. Ma su una nuova installazione non và più