Подтвердить что ты не робот

Как преобразовать pt в sp?

Я являюсь визуальным дизайнером, работая над дизайном Android, и я пытаюсь определить свой PSD файл для наших инженеров. Я не могу найти никакой документации относительно преобразования размера точки в SP для типа в любой документации на Android. (Просто, что SP должен использоваться для типа).

4b9b3361

Ответ 1

Проблема в том, что она зависит от плотности. Действительно, они не являются хорошими измерениями, чтобы попытаться сравнить.

  • Точки: 12 точек в pica, 6 picas на дюйм, поэтому 72 (точнее 72,27) точек на дюйм.

  • Независимые от устройства пиксели (DP): они будут равны размеру пикселя для дисплеев MDPI, 1,5 × размер пикселя для дисплеев HDPI и 2x размер пикселя для дисплеев XHDPI, (например, 12dp = 12px MDPI, 18px HDPI, 24px XHDPI).

  • Масштабируемые пиксели. Они будут эквивалентны значению DP, но масштабируются в соответствии с предпочтением пользователя, чтобы быть меньше или больше.

Если вы разрабатываете с разрешением 72 dpi (настройка DPI по умолчанию для Photoshop), шрифт 8pt будет эквивалентен 8px, который будет 8px в MDPI, 12px на HDPI и 16px в XHDPI или более просто 8dp для всех плотностей, Я не знаю, сколько масштабирования применяется к различным настройкам SP, поэтому вам нужно будет это выискивать, но в основном я бы просто дал им макет и позволил им правильно оттуда оттуда - наверняка они могут получить его довольно закрыть визуально от этого.

Ответ 2

В отличие от dp (и sp с минусом коэффициента пользовательского текста), pt имеет в точности то же физическое измерение. Dp является более или менее грубым приближением, поскольку он использует тот же коэффициент для широкого диапазона dpi.

Вы не можете преобразовать pt в sp, как сказал Флавио. Однако вы можете преобразовать pt в dp примерно (+/- 30% в крайних случаях, но, по крайней мере, ожидайте +/- 10%).

Используя векторы dpi (ldp = 120, mdpi = 160, hdpi = 240, xhdpi = 320), наиболее общий коэффициент преобразования будет x0.45 (= 72/120 * 0.75 = 72/160 * 1 = 72/240 * 1,5 = 72/320 * 2) при использовании точных значений ковша.

Для более точных факторов:

  • mdpi (коэффициент масштабирования: 1.0) 10.1 "Экран WXGA (149dpi) 0,483076923 (= 72/149 * 1,0)
  • hdpi (коэффициент масштабирования: 1,5) Nexus 7 (216dpi) 0,5 (= 72/216 * 1,5)
  • xhdpi (коэффициент масштабирования: 2.0) Nexus 10 (300dpi) 0,48 (= 72/300 * 2)

Итак, 12 pt будут включены...

  • 10.1 "WXGA: 24.84dp
  • Nexus 7: 24 dp
  • Nexus 10: 25dp
  • Значение вектора татуировки: 26.666dp

Вы можете использовать те же значения для sp, но имейте в виду, что они могут быть в/уменьшены с помощью настроек пользователя.

Ответ 3

Нет прямого сопоставления между пикселями и sp, поскольку sps динамически устанавливаются, когда пользователи изменяют размер шрифта устройства в системных настройках. Пользователь может захотеть увидеть все шрифты приложений в меньших или больших размерах. Это функция доступности, предоставляемая ОС.

Ответ 5

Это отличный инструмент для преобразования между различными измерениями - введите то, что вы знаете, и оно рассчитает остальное!

http://angrytools.com/android/pixelcalc/

Ответ 6

Есть 72 пункта на дюйм и 160 sp на дюйм (со стандартным размером шрифта в настройках устройства). это означает, что есть 160sp за 72pts. 160sp/72pts упрощается до 20/9. Поэтому при преобразовании pts в sp или dp используйте pts * 20/9. Как уже упоминалось здесь, sp здесь зависит от пользовательских настроек, поэтому, если вы не хотите, чтобы размер текста изменялся с настройками устройства, используйте dp.