SlideShare a Scribd company logo
1 of 64
Download to read offline
HIGH-RESOLUTION MONITORS
Make Your User Interfaces Scale with the Future
Agenda
   Introduction
   Some broken apps
   Scaling modes
   Testing your apps
   Swing tips
What is DPI
              width




   height




                      Artwork by Studiomx.eu
What is DPI
              13.3 inch




   8.3 inch




                          Artwork by Studiomx.eu
What is DPI
               1280 pixels




  800 pixels




                             Artwork by Studiomx.eu
What is DPI
                        1280 pixels / 13.3 inch




  800 pixels /
   8.3 inch




                 1280 pixels / 13.3 inch = 96 pixels per inch
                 800 pixels / 8.3 inch = 96 pixels per inch


                                                                Artwork by Studiomx.eu
Pixels vs. points
   Example: Printing
     Translating   a logical “point” to multiple ink “pixels”
   Desktop publishing point – 1/72 of an inch
   As displays become denser, this translation
    becomes necessary as well
   12-point font should always be 1/6 of an inch
    under different DPI conditions
Different pixel size, same point size

                 12 points




       300 DPI               96 DPI
Pixels, points, and your display

   Points
     logical unit of layout
     (text, controls, primitive drawing)

   Pixels
       literal physical unit of display
   Scale factor
       how points are converted to pixels for your specific
        hardware
What is High DPI?
QSXGA – Quad Super eXtended Graphics Array

 13.3 inch by 16.6 inch
 2048 pixels by 2560 pixels
 154 DPI
 Priced in $13.000-15.000 range




  Planar                Eizo           Barco        WIDE
 Dome C5i           Radiforce G51   Coronis 5MP   IF2105MP
What is High DPI?
WQUXGA – Wide Quad Ultra eXtended Graphics Array

 18.8 inch by 11.8 inch
 3840 pixels by 2400 pixels
 204 DPI
 Priced at around $9.000

 IDTech MD22292 series

 sold as:
 •IBM T220, T221
 •Iiyama AQU5611DTBK
 •ViewSonic VP2290b
 •ADTX MD22292B



 Toshiba will produce a WQUXGA monitor in Q2 2008
High DPI – beyond the desktop

   Sony W810i      Apple iPhone
   148 DPI         163 DPI




   Sony W810i      Apple iPod Nano
   200 DPI         204 DPI




   Amazon Kindle   Nokia N770
   167 DPI         225 DPI
Point Of Sale / Presentation




www.microsoft.com/dynamics/pos
www.visualbusiness.com.au
www.komtelpe.biz
www.posmagic.com.au
What does this have to do with me?

   Even jump from 96 DPI to 120 DPI can break
    visuals
   Convergence with handhelds (200+ DPI)
   Point of sale systems (touch screens)
   Presentations and demos
   Hardware always gets cheaper…
Broken applications
Let’s see a few applications
scaled to 150-200%
Windows XP - run
Windows XP - Paint
Windows Vista – Photoshop CS3
Windows Vista - Minesweeper
Ubuntu 8.04 – Eclipse 3.4m5
Ubuntu 8.04 - archiver
Ubuntu 8.04 – Firefox 3 beta 5
Mac OS X Leopard - Acorn
Mac OS X Leopard - Photoshop
UI scaling modes
Magnification
Application scaling
Framework scaling
Magnification
   simplest option
   fuzzy
   best choice for legacy apps
Magnification




http://developer.apple.com/documentation/UserExperience/Conceptual/HiDPIOverview/
HiDPIConcepts/chapter_2_section_1.html
Magnification – Mac OS X
Magnification – Windows Vista
Application Scaling
Applications that don’t use modern native
UI libs (WPF / Cocoa)

Applications that use UI toolkits that don’t
provide magnification / toolkit scaling
(Swing on non-Mac platforms)
What should be scaled?

 Icons
 Control visuals and inner metrics

 Inter control layout

 Custom application painting
Scaling Icons




                Hard to
                 See

                 Understand

                 Operate
Scaling icons
   Icon bundles
     Multiplefiles
     “Archive” format – ICO (Win), ICNS (Mac)

     “Layered” format – TIFF

   Vector icons – SVG, PDF
Icons – Multiple Versions




    16*16, 22*22, 32*32, 48*48, 64*64, 128*128 + SVG
                                            Artwork by Crystal and Oxygen
Scaling Controls
Internal Metrics




   Borders
Internal Metrics




   Borders
   Focus ring margin
Internal Metrics




   Borders
   Focus ring margin
   Focus ring
Internal Metrics




   Borders             Focus ring insets
   Focus ring margin
   Focus ring
Internal Metrics




   Borders             Focus ring insets
   Focus ring margin   Icon text gap
   Focus ring
Using Scalable Units For Control
Layout – Vista approach




   http://msdn2.microsoft.com/en-us/library/aa511453.aspx
Dialog Units

   The vertical dialog box unit is equivalent to the
    character height.
   The horizontal dialog box unit is equivalent to the
    average character width of the dialog box's font.

   The average character width is calculated by
    finding the average text extent of the alphabetic
    character set.




         http://support.microsoft.com/kb/145994/en-us
Preserving Inter-Control Alignment
Preserving Inter-Control Alignment




       Degraded user experience
Inter-Control Alignment
Inter-Control Alignment
Scaling custom app visuals
Framework Scaling
most exhaustive option
requires deep integration from graphics
drivers to the widget toolkit
minimal changes to "modern" apps
Framework Scaling




http://developer.apple.com/documentation/UserExperience/Conceptual/HiDPIOverview/
HiDPIConcepts/chapter_2_section_1.html
Framework scaling – Mac OS X
Framework scaling – Vista
Framework scaling – back to pixels

   Sometimes the default scaling isn’t right
     Per-pixelcustom art (Google map tiles)
     Custom controls

     Custom views where physical size fidelity matters
      (show 1 inch, irrespective of DPI)
   Obtain the “scale factor”
   Apply an “inverse” affine transform to get back
    to the “device” coordinate space
Testing your app
   Changing the DPI setting for testing
    purposes
      Windows Vista

      Mac OS X

      Ubuntu with Gnome

      Ubuntu with KDE
Windows Vista
   Display -> Personalize -> Adjust Font Size
    (DPI)
Mac OS X Leopard
   /Developer/Applications/Graphics Tools/Quartz
    Debug.app
     Tools   -> Show User Interface Resolution
Ubuntu 8.04 Gnome
   System -> Preferences -> Appearance ->
    Fonts -> Details
Ubuntu 8.04 KDE 4.0
   Computer -> System Settings -> Appearance -
    > Fonts
Swing Recommendations
   Don’t hard-code pixel values
   Bundling multiple images from existing icon
    sets (Tango, Oxygen, Crystal, …)
   Use SVG and Apache Batik
     UseFlamingo transcoder on SVG images for
     pure Java2D rendering code
   JGoodies Plastic / Substance / Nimbus LAFs
   JGoodies Form layout manager with dialog
    units
   MiG layout manager with logical pixels
Swing Recommendations -
Windows
   Use Toolkit.getScreenResolution() to
    convert pixels to points
   OS-specific properties to query desktop
    font settings
     win.defaultGUI.font

     win.icon.font
Swing Recommendations - Linux

   Use Toolkit.getScreenResolution() to
    convert pixels to points
   OS-specific properties under Gnome to
    query desktop font settings
     gnome.Gtk/FontName

     gnome.Xft/DPI
Swing Recommendations – Mac
OS X
   OS-specific property
     apple.awt.UIScaleFactor

     Use  inverse affine transform in
      paintComponent()
   Translating the affine transform to avoid
    pixel cracks
     Using the modulo of the scaled vs. unscaled
      coordinate space
     Published example forthcoming
One more thing…
Multi-display, multi-resolution
Related sessions
   TS-6096 – Nimbus: The New Face of
    Swing. Thursday 10:50AM
   BOF-6101 – Nimbus: Beyond the Basics.
    Thursday 7:30PM
   TS-4928 - Creating Simple to Advanced
    Swing and SWT Layouts Easily with MiG
    Layout. Friday 1:30PM
Kirill Grouchnikov, Amdocs Inc.
Mike Swingler, Apple Inc.

More Related Content

What's hot (12)

Best Monitor for Video & Photo editing
Best Monitor for Video & Photo editingBest Monitor for Video & Photo editing
Best Monitor for Video & Photo editing
 
Hp envy
Hp  envyHp  envy
Hp envy
 
Android App Development 08 : Support Multiple Devices
Android App Development 08 : Support Multiple DevicesAndroid App Development 08 : Support Multiple Devices
Android App Development 08 : Support Multiple Devices
 
Designing Android apps for multiple screens
Designing Android apps for multiple screensDesigning Android apps for multiple screens
Designing Android apps for multiple screens
 
pscs3vqp_excerpt
pscs3vqp_excerptpscs3vqp_excerpt
pscs3vqp_excerpt
 
Presenter's tools: Software & Hardware
Presenter's tools: Software & HardwarePresenter's tools: Software & Hardware
Presenter's tools: Software & Hardware
 
Adobe photoshop extended cs5 [old version]
Adobe photoshop extended cs5 [old version]Adobe photoshop extended cs5 [old version]
Adobe photoshop extended cs5 [old version]
 
P1 powerpoint presentation
P1 powerpoint presentationP1 powerpoint presentation
P1 powerpoint presentation
 
Graphic hardware and software
Graphic hardware and softwareGraphic hardware and software
Graphic hardware and software
 
Animation software by Er. Suvisha Gupta
Animation software by Er. Suvisha GuptaAnimation software by Er. Suvisha Gupta
Animation software by Er. Suvisha Gupta
 
Amd future of gp us - campus party
Amd   future of gp us - campus partyAmd   future of gp us - campus party
Amd future of gp us - campus party
 
output devices
output devicesoutput devices
output devices
 

Similar to High DPI for desktop applications

Windows 7 V2 Vineet
Windows 7 V2   VineetWindows 7 V2   Vineet
Windows 7 V2 Vineet
technext1
 

Similar to High DPI for desktop applications (20)

Android training day 3
Android training day 3Android training day 3
Android training day 3
 
Windows 7 V2 Vineet
Windows 7 V2   VineetWindows 7 V2   Vineet
Windows 7 V2 Vineet
 
Windows 7 V2
Windows 7 V2Windows 7 V2
Windows 7 V2
 
Sig13 ce future_gfx
Sig13 ce future_gfxSig13 ce future_gfx
Sig13 ce future_gfx
 
Better DITA Graphics for a Multi-Screen World
Better DITA Graphics for a Multi-Screen WorldBetter DITA Graphics for a Multi-Screen World
Better DITA Graphics for a Multi-Screen World
 
Kisters 3DViewStation - your data: how, when, where you want
Kisters 3DViewStation - your data: how, when, where you wantKisters 3DViewStation - your data: how, when, where you want
Kisters 3DViewStation - your data: how, when, where you want
 
Onyx - PrintLAT
Onyx - PrintLAT Onyx - PrintLAT
Onyx - PrintLAT
 
Flash for Mobile Devices
Flash for Mobile DevicesFlash for Mobile Devices
Flash for Mobile Devices
 
Rapidly Construct LOB Applications with UWP and Visual Studio 2017
Rapidly Construct LOB Applications with UWP and Visual Studio 2017Rapidly Construct LOB Applications with UWP and Visual Studio 2017
Rapidly Construct LOB Applications with UWP and Visual Studio 2017
 
How computer monitors work
How computer monitors workHow computer monitors work
How computer monitors work
 
Nvidia quadro sales guide
Nvidia quadro sales guideNvidia quadro sales guide
Nvidia quadro sales guide
 
Android Apps Training - Day Four (Design)
Android Apps Training - Day Four (Design)Android Apps Training - Day Four (Design)
Android Apps Training - Day Four (Design)
 
(2) gui drawing
(2) gui drawing(2) gui drawing
(2) gui drawing
 
Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)Introduction to Software Defined Visualization (SDVis)
Introduction to Software Defined Visualization (SDVis)
 
A Special Introduction to the Upcoming InduSoft Web Studio 8.0
A Special Introduction to the Upcoming InduSoft Web Studio 8.0A Special Introduction to the Upcoming InduSoft Web Studio 8.0
A Special Introduction to the Upcoming InduSoft Web Studio 8.0
 
Creating Flash Content for Multiple Screens
Creating Flash Content for Multiple ScreensCreating Flash Content for Multiple Screens
Creating Flash Content for Multiple Screens
 
Designing for mobile
Designing for mobileDesigning for mobile
Designing for mobile
 
2 Win7 For Devs Ux Touch Sensors
2 Win7 For Devs Ux Touch Sensors2 Win7 For Devs Ux Touch Sensors
2 Win7 For Devs Ux Touch Sensors
 
Kisters 3DViewStation - CAD viewer for PLM and stand alone
Kisters 3DViewStation - CAD viewer for PLM and stand aloneKisters 3DViewStation - CAD viewer for PLM and stand alone
Kisters 3DViewStation - CAD viewer for PLM and stand alone
 
Multi Screen Hell
Multi Screen HellMulti Screen Hell
Multi Screen Hell
 

More from Kirill Grouchnikov (8)

Responsive mobile design in practice
Responsive mobile design in practiceResponsive mobile design in practice
Responsive mobile design in practice
 
Responsive mobile design
Responsive mobile designResponsive mobile design
Responsive mobile design
 
Designing for the mobile form factor
Designing for the mobile form factorDesigning for the mobile form factor
Designing for the mobile form factor
 
Substance Java One 2007 Community Corner
Substance Java One 2007  Community  CornerSubstance Java One 2007  Community  Corner
Substance Java One 2007 Community Corner
 
Flamingo Ribbon component
Flamingo Ribbon componentFlamingo Ribbon component
Flamingo Ribbon component
 
Party of One
Party of OneParty of One
Party of One
 
Advanced Effects Oscon 2007
Advanced Effects   Oscon 2007Advanced Effects   Oscon 2007
Advanced Effects Oscon 2007
 
On The Shoulders Of Giants
On The Shoulders Of GiantsOn The Shoulders Of Giants
On The Shoulders Of Giants
 

Recently uploaded

Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
panagenda
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Victor Rentea
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Recently uploaded (20)

AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
AI+A11Y 11MAY2024 HYDERBAD GAAD 2024 - HelloA11Y (11 May 2024)
 
Why Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire businessWhy Teams call analytics are critical to your entire business
Why Teams call analytics are critical to your entire business
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024Finding Java's Hidden Performance Traps @ DevoxxUK 2024
Finding Java's Hidden Performance Traps @ DevoxxUK 2024
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUKSpring Boot vs Quarkus the ultimate battle - DevoxxUK
Spring Boot vs Quarkus the ultimate battle - DevoxxUK
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdfRising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
Rising Above_ Dubai Floods and the Fortitude of Dubai International Airport.pdf
 
Artificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : UncertaintyArtificial Intelligence Chap.5 : Uncertainty
Artificial Intelligence Chap.5 : Uncertainty
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..Understanding the FAA Part 107 License ..
Understanding the FAA Part 107 License ..
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 

High DPI for desktop applications