Supporto per retina Java e Mac

6

Java supporta il display retina con rendering ad alta definizione di, ad esempio, il testo? Oppure viene trattato come un'applicazione non modificata e quindi soggetto al ridimensionamento?

    
posta Paul Wagland 14.06.2012 - 21:20
fonte

6 risposte

3

Ho appena provato questo sul mio MacBook Pro con retina, quindi la risposta è sì e no - almeno sotto Mountain Lion.

Se si utilizza Java direttamente dalla riga di comando, la risposta è sì: verrà avviato in HiDPI e renderizzato il testo in alta risoluzione. Le cose renderizzate usando Graphics2D renderanno in modalità ad alta risoluzione. Quindi, se si esegue il rendering di una linea con 0,5 pixel AWT spessi e si posiziona a 0,25 / 0,75 su un pixel AWT, verrà visualizzato un singolo "pixel retinico". Analogamente, il rendering di un'immagine a metà risoluzione lo renderà a "retinica" "risoluzione.

Quindi, invece di solo g.drawImage(image, x, y, observer) dovresti fare:

g.drawImage(image, x, y,
    image.getWidth(observer)/2,
    image.getHeight(observer)/2, observer);

(A meno che tu non abbia una larghezza / altezza dispari, nel qual caso dovresti probabilmente usare Graphics2D e solo scale(0.5, 0.5) per rendere un'immagine retinica.)

Se usi JavaApplicationStub, allora hai bisogno della risposta fornita da Matt Solnit, altrimenti verrà avviata in modalità "ridimensionata". (Sotto Mountain Lion, ci sono dei cerchi aggiunti per saltare attraverso correlati a Gatekeeper, ma questa è una domanda diversa.)

Si noti che questa risposta si applica sia a Mountain Lion sia alla versione fornita da Apple di Java (Java 1.6.0_33). Potrebbe essere diverso sotto Oracle 7 di Java per Mac OS X, e potrebbe non funzionare allo stesso modo su Lion.

    
risposta data 05.08.2012 - 03:58
fonte
6

Java 6 JRE di Apple supporterà HiDPI, tuttavia non è attualmente supportato da Java 7 JRE di Oracle. Inoltre, non funziona con le ultime versioni di sviluppo di Java 8. Le app di Swing e JavaFX sono sfocate su un MacBook di Retinia. Questo è il motivo per cui IntelliJ gira ancora sotto Java 6. Le applicazioni Eclipse richiedono la modalità PList menzionata da Jurriaan Mous. Le build milestone di Eclipse 4.3 non richiedono la modifica.

    
risposta data 14.01.2013 - 04:31
fonte
5

Da: link

Ecco la soluzione alternativa:

Fai "Mostra i contenuti del pacchetto" su Eclipse.app. Modifica contenuto / Info.plist utilizzando il tuo editor di testo preferito. Appena sopra

</dict>
</plist>

Posiziona questo:

<key>NSHighResolutionCapable</key>
<true/>

Quindi, vai alla cartella in cui è memorizzato Eclipse ed esegui

touch Eclipse.app

per fare in modo che macOS noti la modifica.

Ora, la finestra delle informazioni non mostrerà "Apri in bassa risoluzione" come selezionato. Lanciare Eclipse e goditi la tua nuova fantastica retina.

    
risposta data 21.06.2012 - 20:43
fonte
1

È probabile che sia trattato come non modificato, dato il numero di domande che chiedono come appare Eclipse e come renderlo migliore. (Eclipse gira su Java.)

    
risposta data 14.06.2012 - 22:43
fonte
1

Presso il negozio ho scritto Hello World su Swing e il testo sembrava correttamente Retina-sharp. (Non ho provato SWT, che richiede più download per l'installazione.)

    
risposta data 18.06.2012 - 01:53
fonte
0

Non ho una Retina MBP, ma la VM esegue il rendering usando aqua per quanto ne so, e quindi dovrebbe visualizzare pulsanti, cursori, testo e qualsiasi altro controllo Swing con la qualità della retina.

    
risposta data 18.06.2012 - 06:02
fonte

Leggi altre domande sui tag