Ho notato una cosa molto anomala con la XUI.
Io chiamo più volte questa sub per ridisegnare un immagine. Ogni volta che la chiamo la sub disegna l'immagine modificandola con i nuovi paramentri.
Ad esempio una sub così:
B4X:
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private PanelMain As B4XView
Dim xui As XUI 'ignore
End Sub
Private Sub Draw
PanelMain.RemoveAllViews ' Senza questo il Canvas non disegna nulla, disegna solo la prima volta.
Dim Can As B4XCanvas
Can.Initialize(PanelMain)
Can.DrawCircle(PanelMain.Width/2, PanelMain.Heght/2,rnd(50,200)*1dip,xui.Color_Red,True,1dip)
End Sub
Se io non inserissi questo istruzione
B4X:
PanelB4XView.RemoveAllView
Il canvas non da nessun risultato, l'immagine rimane quella precedente.
Quasi come se l'immagine generate precedentemente dal canvas fosse come un secondo pannello agganciato sopra.
Suppongo che dato che crei un canvas ogni volta, questi vengano sovrapposti. Sto (mentre tento di ridere con Maurizio Batista) guardando un sorgente di Erel; usa un solo canvas e poi "giostra" con TargetRect, ClearRect, ClipPath, RemoveClip.
Però non sto seguendo nemmeno ciò che sto scrivendo io stesso
Suppongo che dato che crei un canvas ogni volta, questi vengano sovrapposti. Sto (mentre tento di ridere con Maurizio Batista) guardando un sorgente di Erel; usa un solo canvas e poi "giostra" con TargetRect, ClearRect, ClipPath, RemoveClip.
Però non sto seguendo nemmeno ciò che sto scrivendo io stesso
Qui non parliamo di sorgenti, non sto cercando una soluzione. La soluzione e B4XView.RemoveAllView.
Il punto è: perché questa anomalia?
Il comportamento normale è quello del cavas.
Quindi penso che Erel nel rendere compatibile a tutte le piattaforme il B4Xcanvas, stia usando un altro pannello attaccato alla vista per poter disegnare un cavas
Quindi penso che Erel nel rendere compatibile a tutte le piattaforme il B4Xcanvas, stia usando un altro pannello attaccato alla vista per poter disegnare un cavas
Non c'è bisogno usare tanta roba. Ho messo in esemp4semplice sopra
B4X:
Sub Process_Globals
Private fx As JFX
Private MainForm As Form
Private PanelMain As B4XView
Dim xui As XUI 'ignore
End Sub
Private Sub Draw
PanelMain.RemoveAllViews ' Senza questo il Canvas non disegna nulla, disegna solo la prima volta.
Dim Can As B4XCanvas
Can.Initialize(PanelMain)
Can.DrawCircle(PanelMain.Width/2, PanelMain.Heght/2,rnd(50,200)*1dip,xui.Color_Red,True,1dip)
End Sub
[Nota che ho creato pnlBase2 - B4XView - da codice; era invece possibile creare un secondo panel normale tramite Designer, pnlBase2, e nel codice dichiarare un xpnlBase2 As B4XView ed impostare xpnlBase2 = pnlBase2, come nel secondo progetto allegato]
Anche in questa, per disegnare, usa un unico canvas, dichiarato a livello di modulo, e le varie:
TargetRect, ClearRect, ClipPath, RemoveClip
[... e con questo, almeno per il momento, mollo ]
Ah, tanto perché non volevi metterti a studiare B4XView, come ti avevo consigliato...
hai creato uno "snippet" (si fa per dire, è un progetto) ottimo ed in tempi brevissimi
(quel Cube Spline)
Bravissimo!
Initialize (View As B4XView)
Initializes the canvas.
In B4A and B4i the canvas will draw on the passed view.
In B4J the canvas which is a view by itself is added to the passed pane as the first element
In questo momento i problemi li ho con il vecchio smartphone, non il huawei.
Premesso che per il vecchio non ho mai avuto un driver ideale, fino a prima che comprassi il huawei riuscivo a fare tutto con il vecchio, mentre adesso pare connettersi (si vede nella finestra del log) ma non riesce a fare uno screenshot.
Installerò un'app per farli oppure me la farò; per ora... lo fotografo
Buongiorno. Intendi fare uno screenshot del cellulare dal cellulare?
Prova a tenere premuto POWER+ VOLUME GIU' e dovrebbe fare lo screenshot.
Mi pare sia una funzione integrata del sistema android a prescindere dal costruttore.
Buongiorno. Intendi fare uno screenshot del cellulare dal cellulare?
Prova a tenere premuto POWER+ VOLUME GIU' e dovrebbe fare lo screenshot.
Mi pare sia una funzione integrata del sistema android a prescindere dal costruttore.
Non credo (anche se proverò, per ora è spento) ma se fosse come dici, dovrebbe essere solo per gli smartphone (sul Huawei è così) perché sul mio tablet si deve tenere premuto uno dei tre tasti virtuali - quello per le appp recenti).
Ogni produttore poi aggiunge funzionalità tramite i propri software.
Il metodo che ti ho indicato io dovrebbe funzionare su tutti i dispositivi Android, in teoria, in quanto funzione del sistema.
Si ma sto pensando di riprendere il tutto con una vecchia cinepresa di mio padre, sviluppare la pellicola personalmente, tagliare un fotogramma, inviarne a me stesso una copia tramite fax e voilat, il gioco è fatto.