Qual è lo scopo di annullare ciò che abbiamo appena fatto!
Non sei, però. Se stai appena uscendo dalle parole, sembra che sia quello che potrebbe succedere, ma in realtà non lo è.
Pensate a come questo:
Hai una serie di traduzioni in realtà complesse e rotazioni che si desidera applicare nella stessa onDraw(Canvas)
chiamata. Ora, poiché ogni traduzione/rotazione applicata allo Canvas
avviene in ordine, è necessario annullare le ultime modifiche apportate allo Canvas
, o in qualche modo calcolare le nuove regolazioni basate sulla precedente prima di disegnare qualunque cosa si desideri disegnare. Sarebbe molto complicato, molto rapidamente.
Utilizzare canvas.save()
e canvas.restore()
è un modo ridicolmente semplice per semplificare tale processo.
Effettuando le regolazioni applicabili allo Canvas
all'interno di un blocco di salvataggio/ripristino, si stanno effettivamente isolando le suddette regolazioni in modo che qualsiasi cosa si voglia disegnare successivamente non sia influenzata da ciò che si sta disegnando ora.
Ora, un po 'meglio spiegazione dei nomi:
canvas.save()
sta dicendo che voglio salvare lo stato delle attuali regolazioni Canvas
s' in modo che possa tornare in un secondo momento.
canvas.restore()
sta dicendo che voglio tornare aggiustamenti 's miei Canvas
indietro all'ultima volta che ho chiamato cavas.save()
La bellezza di questo è nella sua semplicità. Se hai già disegnato quello che volevi disegnare durante il salvataggio/ripristino e non hai più bisogno di quelle regolazioni per il tuo prossimo disegno, con questo ti lasciamo perdere quelle regolazioni inutili e torni allo stato in cui vuoi iniziare il tuo prossimo disegno a partire dal.
Speriamo che questo aiuti a spiegarlo!
se non si è certi di cosa dicono i documenti, provare a sperimentare un po 'con questi metodi e vedere che cosa fanno effettivamente: – pskink
correlati: http: // stackoverflow.it/questions/3051981/why-do-we-use-canvas-save-or-canvas-restore – petey