2016-06-27 2 views
0

Я работаю над простым приложением Pitch Pipe, чтобы изучить базовый Android. Я довольно много сделал - у него есть все функции, которые я хотел бы использовать в кассете. Тем не менее, на двух реальных устройствах, которые я пробовал, текст не помещается внутри кнопок, как на эмуляторе. Вместо этого:Текст на кнопках больше на реальных устройствах, чем на эмуляторах?

pitch pipe app image

Текст на центральной кнопке выглядит это на реальном устройстве:

F #/

G б 4

К сожалению, я не могу предоставить любые скриншоты телефонов, на которых я его пробовал, они принадлежат друзьям. Но в основном это похоже на то, что текст находится в режиме оправдания, а также слишком большой, поэтому он занимает 2 строки вместо одного. Как я могу предотвратить это? Как я могу учесть разные устройства, обрабатывающие текст по-разному? Должен ли я использовать шрифт, отличный от sans-serif-light? Спасибо за любое понимание, которое вы можете предложить.

+0

Как вы это делаете? Вы используете библиотеку ArcLayout? У меня была аналогичная проблема с размером вещей, и это было вызвано тем фактом, что значения размера, которые я передавал, были просто равными пикселями. – JCLaHoot

+0

Я просто использую стандартный XML. Я устанавливаю фон программно (чтобы изменить цвет хода при нажатии), но все размеры никогда не меняются, и все они находятся в dp. – AtlasShrugging

+0

Этот вопрос задан правильно и очень ясен. Почему есть downvotes? –

ответ

1

Это зависит от единицы измерения, используемой при настройке размера текста.

Например, если вы используете 'sp', размер текста будет относительно размера шрифта устройства.

+0

Я использовал dp, который должен быть независим от разрешения, так почему это все еще происходит? – AtlasShrugging

+0

Вы уверены, что 'dp' используется для установки как 1. TextView width 2. TextView textSize? –

+0

Ну, это кнопка с текстом внутри, поэтому я использую dp для textSize, layout_width и layout_height. – AtlasShrugging

1

Вы должны создать различные размеры для своего textSize для поддержки различных разрешений экрана. Или программно, установите размер текста, когда lineCount станет два или более. Вы можете получить lineCount, используя getLineCount(), если вы используете textView и установите для него текстовое изображение text.setTextSize(TypedValue.COMPLEX_UNIT_SP, 16);

+0

Ну, я использовал dp вместо пикселей. Я думал, что это должно было предотвратить проблемы с разными резолюциями? – AtlasShrugging

+0

использование sp для шрифтов.Масштабируемые пиксели - это похоже на блок dp, но он также масштабируется по предпочтению размера шрифта пользователя. Рекомендуется использовать этот аппарат при задании размеров шрифта, поэтому они будут настроены как по плотности экрана, так и по предпочтениям пользователя. – mgcaguioa

+0

Ну, я не могу использовать sp, потому что размер кнопки постоянный - не может настроить это для пользовательских предпочтений. Поэтому мне нужно также сохранить текст. – AtlasShrugging

0

Некоторые устройства могут использовать системный шрифт, который немного отличается от того, что имеет ваш эмулятор. Шрифт по умолчанию зависит от версии Android (например, Lollipop использует Roboto), но часто модифицируются производителями.

Обратите внимание, что в вашем случае есть еще одна причина путаницы: если вы измеряете размер шрифта центральной кнопки, чтобы соответствовать плотно F, тогда переход на A может привести к разделению на две строки, поскольку A немного шире F Поэтому может потребоваться динамическая адаптация размера шрифта.

+0

А, а что, если я использовал собственный шрифт? Или убедиться, что он должен был использовать робото? – AtlasShrugging

+0

вы можете использовать моноширинный шрифт, но он не будет выглядеть хорошо IMHO –

+0

Да, я тоже не поклонник моноширины. Я говорю, что если я заставил каждый телефон использовать шрифт, который я упаковал с приложением? Будет ли это гарантировать, что все телефоны работают одинаково? Кроме того, что касается вашего примера F к примеру, я протестировал каждую кнопку в эмуляторе, единственные проблемы возникают на реальных устройствах. – AtlasShrugging

Смежные вопросы