在Resource Editor
中,我创建了一个大小为9的Font
,它是成比例的、简单的、小的。然后,我还创建了一些基于该Font
的UIID
。现在,我想在特定情况下,即当Display
的高度或宽度大于参考值时,以编程方式更改该Font
的size
。Font
大小的新值将基于Display
大小,因此它是动态的。那么,如何通过程序更改Resource Editor
中定义的Font
的Font
大小呢?
那是一件困难的事情。无法通过编程方式更改资源编辑器的Font
的大小。您需要通过代码构建一个Font
,并通过Style
类应用到应用程序。例如,如果要更改Label
的Font
,则必须创建Font
,将其添加到Style
,然后使用Component
方法setSelectedStyle()
或setPressedStyle()
将其添加至Label
,方法太多了。。。。
资源主题是一个哈希表。为较大的设备创建另一种字体,例如"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);
现在你有了一个大字体的主题。