Я не совсем уверен в этом, но мне кажется, что значение screenDPI, возвращаемое классом Capabilities, будет одинаковым для двух мониторов с одинаковым разрешением, даже если мониторы имеют разные физические размеры.
Чтобы проиллюстрировать, что если у вас есть два монитора, один из которых равен 14 ", а другой - 28", оба имеют одинаковое разрешение 800 x 600 пикселей, то свойство screenDPI будет возвращать одно и то же, поскольку оба они используют такое же разрешение.
Однако количество точек в буквальном, реальном дюйме на каждом экране будет различным из-за физических размеров монитора. Поэтому, когда вы запускаете свой код и измеряете экранный Sprite, который вы создаете с помощью линейки, он не будет соответствовать реальным дюймам. Я не уверен, как вы могли обойти эту проблему (если я прав в том, что ее вызывает), кажется, что это будет трудно.
Debu