2013-05-05 3 views
0

У меня есть приложение для Android, которое поддерживает все четыре размера экранов, например. МАЛЫЙ, НОРМАЛЬНЫЙ, БОЛЬШОЙ и ДОПОЛНИТЕЛЬНЫЙ. Для каждого размера у меня есть портретные и ландшафтные макеты.Платформа приложений для Android, разбитая LARGE текстом

У меня есть некоторые отрицательные отзывы от моих пользователей, сказавших, что на некоторых экранах макет не подходит, например. макет превысил физический размер экрана.

я определил две возможные причины

  1. Пользователь перешел на «Нестандартные» шрифт, который вызвал мои литералов приложения разделить на несколько строк

  2. пользователь выбрал крупный шрифт размер в настройках телефона, который имеет тот же эффект, что и 1). выше

Есть ли способ, который я могу использовать, что защищает мое приложение от этих изменений конфигурации пользователя?

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

ответ

3

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

Если вы действительно настаиваете на строгих размерах шрифтов, вы можете просто сделать изображения своего текста и использовать ImageView в пользу TextView. Таким образом, независимо от того, что пользователь делает с его шрифтом или размером шрифта, текст на самом деле является изображением и поэтому не будет затронут. Я предлагаю это предложение строго в духе ответа на ваш вопрос в точности, но я бы настоятельно предостерег вас от такого драконовского разговора. Локализация станет кошмаром, и вы можете потерять тех, кто хочет контролировать шрифты и размеры шрифтов по любой причине.

+0

Спасибо, что нашли время ответить. Мне нужно, чтобы мои пользователи были счастливы ... как я обнаружил, что они «сломали» мой макет? как я могу сохранить оба пользователя счастливыми, а мои макеты все еще не повреждены? – Hector

+0

Попробуйте getContext(). GetResources(). GetDisplayMetrics(). Плотность; чтобы получить масштаб шрифта. Умножьте это на то, что размер шрифта вашего приложения предпочтительнее (скажем, 14 ср), и это номер, который вы используете для масштабирования вашего размера текста вверх или вниз до вашего стандарта. Однако это все еще не позволяет людям, которые хотят получить большой текст, получить большой текст. Вам нужно играть с макетами, чтобы сделать их более гибкими. Оставьте больше свободного места, если сможете. Эстетически, пробел очень приятен, когда используется хорошо, и при необходимости расширяет пространство просмотров. – MarsAtomic

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