2013-07-14 64 views
3

在Android中有什麼方法可以使用OpenType字體特徵(小型大寫字母,舊式數字等)?像一個自定義的TextView是理想的。在Android中使用OpenType字體特徵

+0

您標記下面的答案爲解決您的問題。你能否在這裏或者我在評論中給出的答案中給出的鏈接添加一些更多細節? – Suragch

+0

我現在接受了一個新的答案,看看它。 – fhucho

回答

3
+0

該文檔不告訴許多。你用過這個嗎? – Suragch

+0

@Suragch否,但它指向[W3Css字體特徵文檔](http://dev.w3.org/csswg/css-fonts/#propdef-font-feature-settings),我發現它非常有用。 – dcow

1

過時了,看看dcow的答案,而不是

我不認爲Android提供這樣的API,但你可以使用的WebView,特別是如果不支持較老的WebView新奇巧的Chrome網頁視圖將是很好。樣本,您可以通過預裝的Droid阿拉伯語納斯赫字體看到OpenType功能設置區別:<div style="-webkit-font-feature-settings: 'rlig' 0">لا</div>

否則我猜你應該潛入JNI編制的HarfBuzz/Freetype的和可開羅進行渲染,如果沒有任何其他辦法字形輪廓它。看看一些HarfBuzz examples,你可以將它移植到你的Android應用程序。除了配置opentype功能(佈局,換行)之外,您需要編譯ICU4C或Pango等庫,但這對於移動應用程序來說是非常大的依賴關係。

+0

我對Webview和Harffbuzz選項都感興趣。如果你可以擴展任何更多這裏是我剛纔問的問題:http://stackoverflow.com/questions/27539237/supporting-complex-text-layout-with-opentype-fonts-in-android – Suragch