code: public static ScreenViewport setDensityAware(final ScreenViewport viewport) {
          final float density = Gdx.graphics.getDensity();
          final float unitsPerPixel = GdxUtilities.isMobile() ? 1f / density : 96f / 160f / density;
          viewport.setUnitsPerPixel(unitsPerPixel);
          return viewport;
      }
docs: {@link ScreenViewport} is tempting to use - especially for GUIs - as it seems to never scale the assets up or
  down, preserving the desired look. However, as it quickly turns out, it usually does not work so well on mobile
  platforms. Fortunately, it provides {@link ScreenViewport#setUnitsPerPixel(float)} method, which allows to apply
  the appropriate scaling thanks to {@link com.badlogic.gdx.Graphics#getDensity() density} usage. This method tries
  to choose the correct scaling, depending on the platform.
  
  @param viewport its unit per pixel ratio will be adjusted.
  @return passed viewport (for chaining).