If you want to design your UI for different screen sizes, you will want better
measurement units to work with. Kivy provides some more scalable alternatives.

Units:

pt

Points - 1/72 of an inch based on the physical size of the screen.
Prefer to use sp instead of pt.

mm

Millimeters - Based on the physical size of the screen.

cm

Centimeters - Based on the physical size of the screen.

in

Inches - Based on the physical size of the screen.

dp

Density-independent Pixels - An abstract unit that is based on the
physical density of the screen. With a density of
1, 1dp is equal to 1px. When running on a higher density screen, the
number of pixels used to draw 1dp is scaled up a factor appropriate to
the screen’s dpi, and the inverse for a lower dpi.
The ratio of dp-to-pixels will change with the screen density, but not
necessarily in direct proportion. Using the dp unit is a simple
solution to making the view dimensions in your layout resize
properly for different screen densities. In others words, it
provides consistency for the real-world size of your UI across
different devices.

sp

Scale-independent Pixels - This is like the dp unit, but it is also
scaled by the user’s font size preference. We recommend you use this
unit when specifying font sizes, so the font size will be adjusted to
both the screen density and the user’s preference.

The metrics cannot be changed at runtime. Once a value has been converted to
pixels, you can’t retrieve the original value anymore. This stems from the fact
that the DPI and density of a device cannot be changed at runtime.

We provide some environment variables to control metrics:

KIVY_METRICS_DENSITY: if set, this value will be used for
density instead of the systems one. On android,
the value varies between 0.75, 1, 1.5 and 2.

KIVY_METRICS_FONTSCALE: if set, this value will be used for
fontscale instead of the systems one. On android, the
value varies between 0.8 and 1.2.

KIVY_DPI: if set, this value will be used for dpi.
Please
note that setting the DPI will not impact the dp/sp notation because these
are based on the screen density.

For example, if you want to simulate a high-density screen (like the HTC One
X):

KIVY_DPI=320 KIVY_METRICS_DENSITY=2 python main.py --size 1280x720

Or a medium-density (like Motorola Droid 2):

KIVY_DPI=240 KIVY_METRICS_DENSITY=1.5 python main.py --size 854x480

You can also simulate an alternative user preference for fontscale as follows: