Как программно изменить размер шрифта, определенного в редакторе ресурсов? - PullRequest
0 голосов
/ 16 марта 2012

В Resource Editor я создал Font, имеющий размер 9, и он пропорционален, прост и мал.Затем я создал также UIID, которые основаны на этом Font.Теперь я хочу изменить программно size это Font при определенных обстоятельствах, то есть когда высота или ширина Display больше, чем заданное значение.Новое значение размера Font будет основано на размере Display, поэтому оно будет динамичным.Итак, как программно изменить Font размер Font, определенный в Resource Editor?

Ответы [ 2 ]

0 голосов
/ 19 марта 2012

Темой ресурса является Hashtable. Создайте другой шрифт для больших устройств, например "LargeFont", затем просто извлеките его из темы и примените к хеш-таблице, например:

Font f = res.get("LargeFont");
Enumeration e = myTheme.keys();
while(e.hasMoreElements() {
    String current = (String)e.nextElement();

    if(current.indexOf("font") > -1) {
         // add this to a list of keys to change, I'm not sure if you can change them during  iteration
    }
}

// for every key to change
myTheme.put(key, f);

Теперь у вас есть тема с большими шрифтами.

0 голосов
/ 16 марта 2012

Это было сложно.Вы не можете программно изменить размер редактора ресурсов Font.Вам нужно будет построить Font по коду и применить к приложению класс Style.Например, если вы хотите изменить Font из Label, вы должны создать Font, добавить его к Style и добавить его к Label, используя метод Component setSelectedStyle()или setPressedStyle(), существует так много методов ....

...