2012-03-10 51 views
6

我很喜歡libGDX for Android(漂亮的OpenGL封裝,也可以在PC上工作),我已經閱讀了一些如何顯示圖像和形狀的好例子。 但是,當我想查看如何顯示文本時,我注意到我唯一能看到該庫支持的是BitmapFont,它爲每個字符使用了一個位圖。對於某些分辨率和字體大小沒問題,但在其他情況下會變得模糊/像素化。如何使用libgdx顯示矢量化文本?

是否有任何其他方式顯示文本使用這個酷庫?某種顯示矢量字體的方法,還可以使用除「.fnt」以外的更受歡迎的字體文件擴展名?

回答

4

在badlogic博客上有一個關於generating bitmap fonts on the fly from TrueType font files的最近條目,它應該解決您在縮放時很難看的打包字體文件時遇到的問題。

當我剛接觸Android和libGDX時,我花了一些時間尋找矢量字體解決方案以通過libGDX繪製可伸縮文本。我從來沒有發現任何東西(甚至沒有泛型Java或通用Android)。我發現的大多數字體解決方案都是建立在位圖上的,或者是非常複雜的渲染系統(這很難適應OpenGL)。這對我來說似乎也有點奇怪,我還沒有找到一個連貫的解釋。

+0

這看起來很有希望,那裏的人寫道它爲他們工作。它怎麼沒有建成呢?它是否有一些需要修復的錯誤...? – 2012-03-11 08:58:49

+0

另外,是不是還有另一種解決方案,包括爲字體繪製低級線和像素,而不是創建位圖? – 2012-03-11 09:07:08

+0

至於爲什麼它沒有內置,我懷疑它不是libgdx的一部分,因爲它的新功能並沒有得到很多測試。我相信他們會對幫助感興趣或報告其用處。至於其他使用OpenGL原語的解決方案,我已經查看並沒有發現任何東西(當然,我不能證明是否定否定)。不過,我懷疑大多數人喜歡生成位圖的優化。 – 2012-03-11 20:01:07

0

我不認爲有這樣做的正確方法,因爲libgdx也適用於openGL。 OpenGL使用紋理來顯示圖像,以便您的設備能夠繪製硬件加速的圖像。我不使用libgdx,但可能您可以編寫自己的函數,先在紋理上繪製基於矢量的字體,然後在屏幕上繪製紋理。 - >然後它不再是矢量化了。

+0

好吧,如果我打電話給一個知道顯示字體大小的函數,是不是會像「正確」的方式顯示一樣?肯定有一些圖書館在那裏做,不是嗎? – 2012-03-10 19:21:54