Come deve essere utilizzato il drawImage() di Java? Non trovo la documentazione JDK molto imminente. Ad esempio, tutte le firme drawImage richiedono un ImageObserver, ma la documentazione per questo non è molto utile per i nuovi utenti.Come funziona Java Graphics.drawImage() e qual è il ruolo di ImageObserver
risposta
Puoi farla franca con Graphics.drawImage(img, x, y, null)
[o simile]. Il parametro ImageObserver
è un callback per informarti dell'avanzamento dell'operazione di disegno; ed è davvero utile solo se stai recuperando il parametro Image in modo asincrono.
Per essere più chiari, se si chiama drawImage
con un'immagine non completamente caricato lo farà:
- return false (immediatamente)
- disegnare la maggior quantità di
Image
possibile (tutto ciò che viene caricato) - e, ad un certo punto futuro, chiamano in
ImageObserver
quando più della immagine è disponibile
in sostanza, se si sta lavorando con i n memoria Image
s (caricati dal file system o costruiti dal programma) non preoccuparti del parametro ImageObserver
. Se carichi Image
nella rete e non li attendi esplicitamente per caricarli, dovrai utilizzare uno ImageObserver
per assicurarti di "disegnare" completamente uno Image
.
In realtà ho utilizzato drawImage()
molte volte sempre con ImageObserver
parametro impostato su null
. Ok questo non significa che sia inutile, ma ho fatto tutto ciò di cui avevo bisogno senza conoscerne l'uso ..
:-) anch'io, e non avevo idea se sarebbe stato un problema. –
Image
Gli oggetti non sono necessariamente completamente caricati. Se Graphics.drawImage
viene richiamato su un'immagine incompleta, verrà disegnato il maggior numero possibile dell'immagine, quindi avviserà lo ImageObserver
(chiamando imageUpdate
) quando verrà caricata altra immagine.
Il ImageObserver
può essere nullo, nel qual caso non si riceverà alcuna notifica. Questo è comune se le immagini sono note per essere caricate, o se c'è già un altro meccanismo che fa ridisegni.
Nota che Component
implementa ImageObserver
, e il suo metodo imageUpdate
causerà un repaint
sulla zona interessata.
'imageUpdate' è anche chiamato per le immagini animate. –
Come altri hanno affermato, questa API è stata concepita quando si presumeva che le immagini che sarebbero state sottoposte a rendering sarebbero state caricate sulla rete. Quando si chiede al toolkit di caricare un'immagine, si assume che si tratti solo di una shell e che i byte richiesti per conoscerne le dimensioni e i pixel continuino a strisciare lungo il cavo.
In questo caso drawImage non può eseguire alcun rendering quando viene chiamato per la prima volta. Man mano che la dimensione e i pixel diventano disponibili, l'ImageObserver viene avvisato. Nel caso di Component implements ImageObserver
, il suo comportamento è quello di ridisegnare quando i dati sono disponibili.
- 1. Qual è il parametro Radix in Java e come funziona?
- 2. Qual è il ruolo delle cartelle src e dist?
- 3. Qual è il ruolo di ClassOutline/JClass/CClass in CodeModel?
- 4. Graphics.DrawImage: Eccezione di memoria
- 5. Qual è il ruolo della classe di attività in MVC?
- 6. Qual è il ruolo della "copia" nel ARC
- 7. Qual è il ruolo di content_main.xml in Android Studio 1.4?
- 8. Nelle applicazioni Android qual è il ruolo di "R.java"?
- 9. Qual è il ruolo di _Pvt_Extensions in LightSwitch
- 10. Graphics.drawImage() in Java è ESTREMAMENTE lento su alcuni computer e molto più veloce su altri
- 11. Qual è il miglior java RPG (gioco di ruolo) per un programmatore esperto?
- 12. Il ruolo di #ifdef e #ifndef
- 13. Qual è il ruolo della soggettività nella programmazione?
- 14. C# winforms: graphics.DrawImage problem
- 15. Qual è il ruolo del blocco BEGIN in Perl?
- 16. Qual è il ruolo della sintassi "interface {}" in Go?
- 17. Qual è il ruolo del "Service Broker" in SOA?
- 18. RMI Java: qual è il ruolo dello stub-scheletro generato dal compilatore rmic
- 19. Qual è il console.log() di java?
- 20. Cosa sono i thread di lavoro e qual è il loro ruolo nel pattern del reattore?
- 21. In Windows Azure: quali sono il ruolo Web, il ruolo del lavoratore e il ruolo della macchina virtuale?
- 22. Appunti Java Proprietario Ruolo?
- 23. Qual è il significato di "!", "?", "_" E "." sintassi in elisir
- 24. Qual è il ruolo di Grand Central Dispatch quando si implementa il multitasking in iOS?
- 25. Qual è il ruolo della chiave app e della chiave segreta in ogni SDK
- 26. Come funziona il bithifting in Java?
- 27. Che cos'è il provider JMS straniero? Qual è il ruolo tipico di Weblogic in un'applicazione JMS?
- 28. Qual è il python per Java BigDecimal?
- 29. Thread.interrupt() in Java: qual è il punto?
- 30. Qual è il corrispondente WCF per java?
Grazie mille questo è davvero utile. –