帮助大家, 我正在开发一个 Android 应用程序,只需要使用 1 个奇怪的 unicode 字符:
\u0180 - ƀ
我的问题是:
是否可以简单地将此字符插入现有字体或任何其他方式,而不是将一个巨大的 5-10 mb 字体包含到支持此 unicode 字符的应用程序中? 请提供任何想法、任何链接、一些方向。 谢谢大家。
最佳答案
谷歌搜索的关键字:Typeface , MetricAffectingSpan , SpannableString .
您不必包含不需要的整组字符。您可以创建自己的字体,其中包含带有您选择的代码的唯一字符。然后您可以使用此字体来跨越包含该字符的字符串。
假设您的角色有一个名为 custom_font
的 TTF 字体文件,您可以将其放入 assets/fonts
文件夹中并创建一个字体对象:
Typeface customTypeface = Typeface.createFromAsset(context.getAssets(), "fonts/custom_font.ttf");
然后您可以将特殊字符跨越字符串(假设您事先不知道其确切位置):
SpannableStringBuilder resultSpan = new SpannableStringBuilder(yourString);
for (int i = 0; i < resultSpan.length(); i++) {
if (resultSpan.charAt(i) == '\u0180') {
CustomTypefaceSpan typefaceSpan = new CustomTypefaceSpan(customTypeface);
resultSpan.setSpan(typefaceSpan, i, i + 1, 0);
}
}
SpannableStringBuilder
实现了 CharSequence
,因此您的 TextView
和 EditText
会很乐意接受它。
您可以从 this answer 获取 CustomTypefaceSpan
的实现.
关于java - Android 使用特殊的 unicode 字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32148290/