Получить экран DPI в реагировать родной - PullRequest
1 голос
/ 04 июня 2019

Контекст:

Я пытаюсь создать приложение, способное использовать измерения реального мира. В моем конкретном случае это нормально, если это не на 100% точно; однако, чем точнее, тем лучше.

Например: если я пытаюсь отобразить квадрат шириной 3 см и на самом деле отображаю квадрат шириной 2,8 см, это приемлемо.

Проблема:

Хотя, как представляется, есть способы получить ширину и высоту экрана в пикселях, нет способа получить разрешение экрана или ширину и высоту экрана в см / дюйм.

Мой вопрос: Как получить или рассчитать DPI экрана? Если это невозможно, есть ли другой способ попробовать использовать измерение в реальном мире?

1 Ответ

0 голосов
/ 05 июня 2019

Вы можете попробовать использовать PixelRatio.get () в React Native для вычисления этого. Этот метод вернет множитель с 1, равным экрану MDPI (160 dpi). Так что если PixelRatio.get() возвращает 1.5, то это экран hdpi (160 * 1.5 = 240 dpi).

На экране MDDP:

1 inch = 160 pixels
1 inch = 2.54 cm
-----------------------
1 cm = 62.992126 pixels

Таким образом, чтобы отобразить что-то шириной 3 см на этом экране, оно должно быть 189 пикселей.

Аналогично, на экране xhdpi (PixelRatio.get() = 2), например:

1 inch = 320 pixels
1 inch = 2.54 cm
-----------------------
1 cm = 125.98425 pixels

Ширина 3 см должна составлять 378 пикселей.

...