Я ищу способ конвертировать из размера 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, он предоставит вам соответствующие форматы и размеры для TextView. У вас есть: px (пиксели), dp (независимые от плотности пиксели), sp (масштабированные пиксели на основе предпочтительного размера шрифта), дюймы или миллиметры (миллиметры).
Шрифт, определенный в точках, фактически определен в физических дюймах. Это преобразование является самым простым и, вероятно, самым бедным способом сделать это, но вы можете преобразовать в дюймы, просто умножив размер точки на отношение точек к физическому дюйму: 1/72
Чтобы преобразовать размер точки в пиксели, вы можете использовать расчет, доступный на этом сайте: http://www.emdpi.com/screendpi.html
Некоторая информация содержит Windows, но основной метод должен работать и на Android, при условии, что вы можете идентифицировать свой экранный dpi. Этот метод даст вам соответствующее значение в пикселях (px), которое допустимо для размера шрифта TextView.
Примечание. TextView рекомендует использовать масштабированные пиксели (sp) для использования с TextView, поэтому вам может потребоваться дополнительная работа по масштабированию шрифта до вашего размера экрана программно.