Я хотел бы получить размер телефона Android, но размер в мм, а не в пикселях.

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

Как здесь Размер Galaxy S4 составляет Dimensions 136.6 x 69.8 x 7.9 mm (5.38 x 2.75 x 0.31 in)

136.6 x 69.8 x 7.9 mm (5.38 x 2.75 x 0.31 in)
               ^^^
               Does any one knows what is this size for?

Хотя я разработчик iPhone, НО я новичок (1-дневный ребенок) для Android. Ниже я расскажу о том, чем я хочу заниматься как RND.

Допустим, дизайнер дает мне дизайн для приложения размером 1080 * 1920 и заголовок размером 30 пикселей (что точно покрывает 80%) от размера экрана.

Это означает 10% пространства слева, 80% текста и 10% пространства справа.

Я знаю, что в Android есть что-то под названием sp или android:textAppearance="@android:style/TextAppearance.Large", но это не даст 10% пробелов.

Я хочу достичь того, что независимо от размера, дизайн должен быть одинаковым.

Учитывая, что дизайн соответствует ширине, если высота увеличится, у меня будет прокрутка, и я согласен с этим.

-1
Fahim Parkar 23 Дек 2014 в 16:54
ОП явно запросил в строке 1 размер в мм, а не в пикселях
 – 
shkschneider
23 Дек 2014 в 16:58
1
Does any one knows what is this size for? Это глубина устройства. 136.6 x 69.8 x 7.9 mm (5.38 x 2.75 x 0.31 in) равно height x width x depth
 – 
Phantômaxx
23 Дек 2014 в 17:01
Теоретически вы можете использовать плотность отображения и размер пикселя для преобразования в физический размер, однако на самом деле это никогда не работает, потому что плотность не совсем точна.
 – 
Greg Ennis
23 Дек 2014 в 17:03

2 ответа

Лучший ответ

«Плотность пикселей» - это количество пикселей на дюйм. Таким образом, dpi дает вам необходимый коэффициент масштабирования, чтобы количество пикселей было одинаковым на всех устройствах.

Другими словами, если у вас экран 480 пикселей с hdpi, то экран 360 пикселей с разрешением mdpi имеет примерно такой же физический размер. Хотя размеры экрана могут немного отличаться, в целом это не так важно. Тем не менее, как уже упоминалось, см. Этот пост о выполнении фактических расчетов:

Есть ли способ определить физическую высоту экрана Android в сантиметрах или дюймах?

Однако в вашем примере вы говорите о процентах от размера экрана. Если вы знаете размер экрана в пикселях, то физический размер не имеет значения, просто выполняйте свои вычисления с использованием пикселей. Если у вас 480 пикселей, 10% будет 48.

Вы не можете сделать это в XML, хотя, похоже, вы можете захотеть это сделать. Вы можете использовать «взвешенные линейные макеты» для расчета размера экрана во время выполнения. Вы также можете использовать разные папки res в зависимости от размера экрана (например, res/layout-hdpi).

Вы можете прочитать это от Google относительно поддержки различных размеров экрана: http: // developer. android.com/guide/practices/screens_support.html

0
Community 23 Май 2017 в 15:12

Используйте DisplayMetrics. API: http://developer.android.com/reference/android/util /DisplayMetrics.html Вы можете выполнить вычисление в указанных полях и получить высоту и ширину в дюймах, а затем преобразовать их в миллиметры.

0
AliAvci 23 Дек 2014 в 17:01