Android текстизирует разные экраны - PullRequest
0 голосов
/ 21 февраля 2012

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

Действительно ли мне нужно использовать разные папки макетов для достижения этой цели?

Спасибо за любую помощь!

Ответы [ 3 ]

5 голосов
/ 21 февраля 2012

Используйте sp для размеров текста, и все должно быть в порядке.

зр

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

из Размеры

dp / dip также может работать, но не включает настройки шрифта пользователя.

0 голосов
/ 04 июля 2013

Я использовал собственный метод для этого .. работал для двух дисплеев (1024x720, 800x480), надеюсь, он тоже работает для вас

Класс:

       //this is a seperated class, for button textsize
       //declaration of standardvalues

       public class Fontstyles {
            static int INT_standardwidth = 1024, INT_standardsize = 50; //do not change

            public static double BTN_TXT_size(Button BTN_X) {
                Point size = new Point();
                YourMainActivity.DIS_main.getSize(size);
                int INT_width = size.x;
                if (BTN_X.getText().length() == 0)
                    return 0;
                // width of display                 (INT_width)
                // width standartvalue              (INT_standardwidth)
                // standardfontsize                 (INT_standardsize)
                return ((float) ((INT_width * 100 / INT_standardwidth)
                        * (INT_standardsize * (INT_width * 100 / INT_standardwidth) / 100) / 100));
            }}

это в YourMainAvtivity:

public static Display DIS_main;
DIS_main = getWindowManager().getDefaultDisplay();

и это для вызова вычисления размера (куда вы хотите):

YourButton.setTextSize((float) Fontstyles.BTN_TXT_size_(YourButton));

работает для TextViews и Button.

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

0 голосов
/ 21 февраля 2012

Если это только для просмотра текста.объявите размер объявления dp в textview в xml.dp - это десипиксели, которые связаны с разрешением экрана, и размер текста изменяется соответственно.

...