【发布时间】:2016-09-27 08:01:52
【问题描述】:
我在更改 android 自定义键盘的自定义键的字体样式(非英语 - Unicode)时遇到问题。 我遵循了类似于link 的答案 它似乎适用于单字符按钮。它将整个应用程序的字体更改为新字体,包括键盘的单字符键。 如果我想更改关键文本的大小,可以使用以下两个条目
android:keyTextSize="25sp" // for single character keys
android:labelTextSize="20sp" // for multiple character keys
但不幸的是,上面链接中的方法仅适用于单字符键。有没有办法设置多个字符键的字体。
例如见下图: 第一个按钮有一些默认的系统字体,而第二个和第三个按钮有正确的字体。
编辑: 阅读 Bhavita Lalwani answer 后,我开始思考。
if (label != null) {
// For characters, use large font. For labels like "Done", use small font.
if (label.length() > 1 && key.codes.length < 2) {
paint.setTextSize(mLabelTextSize);
paint.setTypeface(Typeface.DEFAULT_BOLD);
} else {
paint.setTextSize(mKeyTextSize);
paint.setTypeface(Typeface.DEFAULT);
}
}
这里说
if (label.length() > 1 && key.codes.length < 2)
所以只有当它们有一个代码时,它才会对多个字符使用 BOLD 字体。 例如。我认为 Android Engs 正在考虑这些事情。 ???
Keyboard.KEYCODE_DONE
Keyboard.KEYCODE_DELETE
因此,丑陋的解决方法是添加多个代码并仅在需要时使用第一个代码。
<Key android:codes="5001,1" android:keyLabel="AB" android:keyWidth="12%p" />
现在每个带有多个代码的键也使用默认字体。 这暂时有效,(直到我找到合适的解决方案:))
【问题讨论】:
标签: java android unicode fonts keyboard