2012-03-27 3 views
8

Со всеми усилиями я наконец дошел до конца своего первого приложения в Android. И спасибо всем. Но после того, как я пришел к концу, я понял одно, что размер моего текста приложения распространен во всех размерах планшета. Поэтому я задам свой вопрос.Динамическое изменение размера текста в соответствии с таблицей

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

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

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

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

ответ

13

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

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

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

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

+0

спасибо, что ответили. Но то, что я делаю, делит экран на две части с одной стороны как меню, а другая часть фрагмента, которая продолжает меняться как выбор меню. Будет ли это работать и здесь. ??? – Android

+0

Да, как я уже упоминал, вы должны указать размер экрана в процентах .05 от общей ширины экрана или того, что когда-либо .., которое будет подходящим для каждого экрана, но вам нужно сыграть немного первого назначения процента –

+0

У меня нет того, что я искал, все еще только для того, чтобы узнать, есть ли какой-то способ, который я объявляю в соответствии с вашим методом в одном месте и отражается во всем приложении. ???? – Android

2

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

android:textSize="10sp" 
+0

Спасибо Я постараюсь, что сейчас – Android

+0

не зр работает. – Android

+0

Прочтите документы, sp не работает, как вы сказали. –

31

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

android:textSize="@dimen/campaign_textfontsize" 

Я создал Dimens.XML в «/ значениях» -subdirectory с соответствующим значением

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

Затем я создал второе значение папки «/ значение-sw720dp» и скопировал старый dimens.xml в него. В этом dimens.xml я приспособил значение FontSize:

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

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

Надеется, что это помогает ...

+2

Эй, Кай. Большое спасибо за ответ. Хотя я долгое время использовал этот проект, но определенно попробую. Еще раз спасибо за то, что вы приняли боль за ответ на такой старый вопрос. - Devil – Android

+1

Зачем вам использовать dp и not sp при работе с размером шрифта? – tccpg288

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