Динамическое изменение размера текста в соответствии с планшетом

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

: я использовал свой собственный размер текста во всем приложении. и некоторые из них удовлетворены 7-дюймовым планшетом. Но когда я ищу то же самое в 8,9 дюйма и 10,1-дюймовый планшет содержащего множество пробелов и размер текста также относительно небольшой. Так есть ли способ изменить размер текста в соответствии с размером планшета??? Это может выглядеть вопрос новичка, но я борюсь с этим, потому что то же приложение, которое выглядит замечательно в 7 дюймах, теряет свою сущность в 8.9 и 10.1 дюймах. Или есть что-то еще, что я мог бы сделать с моим приложением для того же самого. Возможные Решения:- как показывает моя тема, есть ли способ изменить размер текста при изменении размера планшета. Динамически или любой другой путь.

редактировать:: согласно ответу Cheeta, подход правильный, но я не могу сделать это для каждой кнопки макета и текстовых полей и другого поля. Есть сотни полей, как это в одном приложении. Могу ли я сделать это в каком-то одном месте и назвать его обязательным атрибутом. Пользовательский тег-это подход, который я ищу.Возможно ли это????

любая помощь будет оценили. Спасибо заранее.

Примечание я не дошло до ответа, но ответ гепарда несколько ведет к правильному пути. Я отмечаю его ответ как правильный, хотя есть несколько проблем с выравниванием с его ответом. Любой другой ответ всегда приветствуется. спасибо

3 ответов


у меня была такая же проблема, но как я понял sp/db не эффективны для решения такого рода проблем, я обработал свое выравнивание и размер шрифта, связанные вещи программно.

вот шаги, как я справилась с этой проблемой.

  • рассчитать ширину экрана и высоту вашего устройства
  • Использовать Set TextView.setTextSize(unit, size), где параметр unit равен TypedValue.COMPLEX_UNIT_PX и параметр size составляет процент от общей ширины экрана. Обычно, для меня .5% от общая ширина шрифта подходит. Вы можете экспериментировать, пробуя другие проценты общей ширины, такие как 0,4% или 0,3%.

таким образом, ваш шрифт size будет всегда подходит для каждого размера текста/экрана.


после проверки некоторых ресурсов я, наконец, придумал следующее решение: В макете XML и я определяю размер кнопки-текст объявление измерения:

android:textSize="@dimen/campaign_textfontsize"

Я создал dimens.xml в подкаталоге"/values " -с соответствующим значением

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="campaign_textfontsize">18dp</dimen>
</resources>

затем я создал второе значение-папку "/ values-sw720dp " и скопировал старые dimens.xml в него. В этом тускнеет.xml я адаптировал значение fontsize:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <dimen name="campaign_textfontsize">24dp</dimen>
</resources>

на основе текущий screensize android выбирает правильное значение dimens. Таким образом, без какого - либо кода шрифт адаптирован к размеру дисплея (и связанной с дисплеем кнопки).

надеюсь, что это помогает...


нет необходимости изменять textsize динамически использовать sp для textsize он автоматически упорядочит размер текста в зависимости от разрешения экрана..как в телефоне.

android:textSize="10sp"