Znalazłem błąd renderowania obrazu Swing, który dotyczy tylko komputerów Mac z wyświetlaczami Retina (TYPE_INT_ARGB_PRE
BufferedImages
nie udało się narysować). Mam skuteczne obejście tego problemu (zamiast tego użyj obrazów TYPE_INT_ARGB
), ale aby go zastosować, muszę być w stanie wykryć, czy komputer hosta to komputer Mac z ekranem Retina. Wykrywanie, czy komputer jest komputerem Mac, nie jest problemem, ale jak określić typ wyświetlania?Jak mogę wykryć, czy komputer Mac ma wyświetlacz Retina z Java?
7
A
Odpowiedz
15
Toolkit.getDefaultToolkit().getDesktopProperty("apple.awt.contentScaleFactor")
Powyższa linia powinna powrócić 2.0
na wyświetlaczach Retina. W nowszych macewach innych niż retina zwraca 1.0
i na wszystkich innych platformach, z których otrzymujesz zwrot null
. Nie mogę znaleźć żadnej oficjalnej dokumentacji, ale natknąłem się na nią in this mailing list post próbując rozwiązać podobny problem.
1
znalazłem rozwiązanie, które wykorzystuje this:
Graphics2D g = (Graphics2D) this.getGraphics();
boolean retinaTest = g.getFontRenderContext().getTransform()
.equals (AffineTransform.getScaleInstance (2.0, 2.0));
Powiązane problemy
- 1. Programowo wykryć, czy iPad ma wyświetlacz Retina?
- 2. CGContext i wyświetlacz Retina
- 3. czy można testować wyświetlacz Retina na symulatorze?
- 4. Jak wykryć ekran Retina w MonoTouch
- 5. Wyświetlacz Retina dla obrazu z adresu URL
- 6. Wyświetlacz Retina Różnica kolorów wyświetlacza normalnego VS
- 7. Jak ustalić, czy komputer ma adapter wifi?
- 8. Czy mogę utworzyć komputer Mac jako urządzenie peryferyjne Bluetooth?
- 9. Komputer Mac: automatyczne połączenie z urządzeniem IOBluetooth
- 10. Zawartość pamięci programów (komputer Mac)
- 11. Java: Sprawdzanie, czy komputer jest bezczynny
- 12. .dSYM wygenerowane z wiersza poleceń (komputer Mac)
- 13. Jak wykryć, czy edittext ma angielskie znaki?
- 14. Znając typ urządzenia - Retina/non-Retina
- 15. Jak wykryć, czy wielokąt ma przekroje własne?
- 16. Jak wykryć, czy element ma wysokość "automatyczną"
- 17. Jak pobrać kod google z SVN na komputer Mac?
- 18. Webapp na iPadzie 3 wyświetlacz retina powolne malowanie ekranu
- 19. CSS reaguje design - wykryć wyświetlacz portret
- 20. Jak mogę przesyłać dźwięk z mikrofonu iPhone'a na komputer Mac/PC za pośrednictwem gniazd lub architektury?
- 21. Serwlety Java - Jak wykryć, czy użytkownik jest z urządzenia mobilnego?
- 22. Jak sprawdzić, czy komputer obsługuje technologię bluetooth?
- 23. Jak wykryć problemy z deserializacją java?
- 24. Jak mogę sprawdzić, czy liczba całkowita Java ma wartość NULL?
- 25. Jak wykryć, czy plik ma BOM UTF-8 w Bash?
- 26. Czy Java ma HashMap z odwrotnym wyszukiwaniem?
- 27. Jak wykryć, czy procesor ma dobrą obsługę POPCNT?
- 28. Jak wykryć, czy łańcuch ma nową linię podziału?
- 29. Czy Mac X11 ma rozszerzenie XTEST?
- 30. Teamviewer - Wyślij klucz sterujący na komputer Mac z Windows
To nie jest dobry sposób, ponieważ użytkownicy mogą mieć wiele monitorów, z których jeden jest Retina i jeden, który nie jest. Musisz zapytać o ten stan dla poszczególnych okien za każdym razem, gdy je odświeżasz. –
Zwraca wartość null w moim ostatnim rMBP z 2013 r. Czy jest jakiś konkretny, który powinien być użyty? – dmolony