Android使用特殊的unicode字符

时间:2015-08-21 19:52:06

标签: java android unicode fonts

帮助大家, 我正在开发一个Android应用程序,只需要使用1个奇怪的unicode字符:

\u0180 - ƀ

我的问题是:

是否可以简单地将此char插入现有字体或以其他任何方式插入支持此unicode char的应用程序中的巨大5-10 MB字体? 请任何想法,任何链接,一些方向。 谢谢大家。

1 个答案:

答案 0 :(得分:2)

Google周围的关键字:TypefaceMetricAffectingSpanSpannableString

您不必包含您不需要的整个字符集。您可以创建自己的字体,其中包含唯一具有您选择的代码的字符。然后,您可以使用此字体来跨越包含该字符的字符串。

假设您有一个名为* { max-width: 100%; color: white; margin: auto; } html, body { width: 100%; margin: 0 auto; height: 100%; } /* MAIN STYLE FOR EACH CONTAINER */ #maincontainer { width: 100%; height: 100%; background-image: url(images/main.jpg); background-repeat: no-repeat; background-position: top; } #menu { width: 19.8%; height: 100%; background-image: url(images/bd.png); float: left; opacity: 0.9; } #wrapper { width: 80%; height: 90%; background-image: url(images/bd.png); opacity: 0.9; float: left; border-left: white solid 1px; } #copyright { width: 80.2%; height: 10%; background-image: url(images/gray.png); float: left; opacity: 0.7; text-align: center; } #copyright p { color: black; margin-top: 50% } /* NAVBAR LEFT SIDE STYLE */ .navbar { margin: 50% auto; width: 50%; height: 50%; } .navbar ul { width: 50%; height: 50%; margin: 50% auto; } .navbar ul li { width: 50%; list-style-type: none; color: white; display: inline-block; margin-top: 15px; } /* WRAPPER's LEFT SIDE STYLE */ /* THE REVIEWS SHIT */ #wrapperleftmenu { float: left; width: 60%; height: 100%; margin: 2% auto; border-right: white solid 1px; } /* REVIEW STYLE */ /* THE REVIEWS SHIT */ #reviewpreview { width: 60%; height: 33%; margin: 2% auto; border: white solid 1px; } /* REVIEW STYLE */ /* THE REVIEWS PICTURE */ #rpcontainer { width: 95%; height: 90%; margin: 2% auto; border: white solid 1px; } /* REVIEW STYLE */ /* WRAPPER LEFT MENU TEXT - TEXT FOR REVIEW */ #wlmtext { width: 23%; height: 60%; margin: 10% 3%; border: white solid 1px; float: left; display: inherit; } #wlmimage { width: 65%; height: 60%; margin: 10% auto; border: white solid 1px; float: left; background-image: url(http://cdn.akamai.steamstatic.com/steam/apps/252490/header.jpg?t=1437745418); background-size: cover; } #news { width: 60%; height: 15%; margin: 2% auto; border: white solid 1px; } #screenshot { width: 60%; height: 39%; margin: 2% auto; border: white solid 1px; } /* WRAPPER's RIGHT SIDE STYLE */ /* THE SOCIAL MEDIA STUFF */ #wrapperrightmenu { width: 60%; height: 100%; margin: 2% auto; } 的TTF字体文件,您可以将其放在custom_font文件夹中并创建一个字体对象:

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,因此您的CharSequenceTextView会很乐意接受它。

您可以从this answer开始实施EditText