幫助鄉親, 我正在開發的Android應用程序,只需要使用1怪異的Unicode字符:的Android使用一種特殊的Unicode字符
\u0180 - ƀ
我的問題是:
是它可以簡單地插入此字符到現有的字體或任何其他方式,而不是包括一個巨大的5-10 MB字體到支持此Unicode字符的應用程序? 請任何想法,任何鏈接,一些方向。 謝謝大家。
幫助鄉親, 我正在開發的Android應用程序,只需要使用1怪異的Unicode字符:的Android使用一種特殊的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
S和EditText
旨意欣然接受它。您可以從this answer開始執行CustomTypefaceSpan
。
是的,我嘗試了不同的字體,但我不知道你可以跨越字符集,謝謝你的朋友。 –
就真正的字母而言,unicode中沒有「奇怪」的字符。你稱之爲怪異的,別人會稱之爲「我的書面語言只是一個普通的字母」,所以當你問的是一個不受支持的unicode字符。不是一個奇怪的。此外,如果您想立即獲得幫助,請添加更多詳情。你在哪裏搜索過,你曾經嘗試過什麼,爲什麼沒有這樣的工作,等等。不要只是建議你還沒有做任何研究,而期待即時答案=) –