Преобразовать размер шрифта (в точке) в iOS UIFont в размер Android TextView (sp или dp)?

1

Я ищу способ конвертировать из размера UIFont в атрибут TextView textSize в Android, например:

[UIFont fontWithName:@"HelveticaNeue" size:14];

iOS Dev Doc определяет единицу атрибута размера UIFont как точку, однако в Android Text View используются px, dp, sp, in или mm.

На Android, на что я должен писать:

<TextView android:textSize="?" />

Спасибо!

Теги:
android-layout
font-size

1 ответ

2
Лучший ответ

Если вы проверите сайт разработчиков Android, он предоставит вам соответствующие форматы и размеры для TextView. У вас есть: px (пиксели), dp (независимые от плотности пиксели), sp (масштабированные пиксели на основе предпочтительного размера шрифта), дюймы или миллиметры (миллиметры).

Шрифт, определенный в точках, фактически определен в физических дюймах. Это преобразование является самым простым и, вероятно, самым бедным способом сделать это, но вы можете преобразовать в дюймы, просто умножив размер точки на отношение точек к физическому дюйму: 1/72

Чтобы преобразовать размер точки в пиксели, вы можете использовать расчет, доступный на этом сайте: http://www.emdpi.com/screendpi.html

Некоторая информация содержит Windows, но основной метод должен работать и на Android, при условии, что вы можете идентифицировать свой экранный dpi. Этот метод даст вам соответствующее значение в пикселях (px), которое допустимо для размера шрифта TextView.

Примечание. TextView рекомендует использовать масштабированные пиксели (sp) для использования с TextView, поэтому вам может потребоваться дополнительная работа по масштабированию шрифта до вашего размера экрана программно.

  • 0
    Я думаю, что мы должны иметь формулу, которая будет принимать размер точки, заданный для iOS, и получать соответствующий размер текста Android (sp). Это возможно? Может, умножить размер точки на 2.222222, чтобы получить размер sp?

Ещё вопросы

Сообщество Overcoder
Наверх
Меню