Android программно меняет стиль - PullRequest
3 голосов
/ 06 июня 2011

У меня более 50 XML-макетов / страниц, и мне нужен способ определения «базового» размера шрифта для каждого типа экрана (маленький / средний / большой). На самом деле мне нужно указать другие вещи, такие как размеры для линейных макетов.

Короче говоря, я хочу различать размеры между маленькими / средними / большими устройствами.

1) Буду ли я программно изменять размер текста в styles.xml во время запуска?

Этот вариант удобен тем, что мне не нужно было бы создавать более 150 XML-макетов.

2) Буду ли я создавать три отдельных макета XML для трех размеров?

Мне бы пришлось скопировать + вставить каждый стиль (* .small, * .med, * .large) ... это звучит так, как будто это займет много работы.

Есть комментарии?

Ответы [ 2 ]

3 голосов
/ 07 июня 2011

Я предполагаю, что вы знаете, что вы должны использовать масштабируемые единицы, как указано в ответе Винай:

http://developer.android.com/guide/practices/screens_support.html

Я настоятельно рекомендую не отклоняться от "лучших практик", если толькоВы действительно знаете, что делаете.Это может принести вам только проблемы в будущем.Я не профессионал, поэтому я стараюсь следовать стандартам.Хорошо, теперь давайте ответим:

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

Для этого вы объявляете в value папки.Вы видели источник приложения ввода-вывода Google в коде Google?Это "Google", и они делают это очень хорошо.Если вы хотите учиться на примере, это, вероятно, самый полный ресурс, который я могу придуматьНо поначалу это немного пугает.

Здесь так много нужно сказать (много простых вопросов ... похоже, вы действительно не знаете свой путь, извините, если это не так), что вы, вероятно, лучшене загружать это дерево исходных текстов.

Конечно, папки value s и layout s работают прозрачно (в этом весь смысл использования стандартов), поэтому вам не нужнобеспокоиться о вариациях экрана в макетах (при обращении к стилям значений ключа) и / или во время выполнения (при обращении как к стилю, так и к макету).

1 голос
/ 06 июня 2011

Ну, я не совсем уверен, что полностью понимаю ваш вопрос, но кажется, что вы просто беспокоитесь о размере шрифта, который можно стандартизировать с помощью «масштабированных пикселей» (sp) при определении TextSize в вашем XML.Вы также можете программно изменить размер текста (# 1, который вы предложили), захватив TextView по его Id и установив размер текста с помощью метода setTextSize ().

Дайте мне знать, если это не ответВы искали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...