Android 中的自訂字體和 XML 版面配置
在 Android 中,XML 版面配置提供了定義使用者介面的便捷方法。但是,它們不提供指定在小部件中使用的自訂字體的功能。雖然可以使用 Java 程式碼為各個小工具設定字體,但這種方法既麻煩又耗時。
透過擴充TextView 自訂字型
要解決此限制,我們可以擴充TextView類別如:
TextViewPlus.java
public class TextViewPlus extends TextView { // Set custom font using asset file public boolean setCustomFont(Context ctx, String asset) { Typeface tf = null; try { tf = Typeface.createFromAsset(ctx.getAssets(), asset); } catch (Exception e) { return false; } setTypeface(tf); return true; } }
XML屬性宣告
接下來,我們在中宣告自訂字體屬性「attrs.xml」檔案:
<declare-styleable name="TextViewPlus"> <attr name="customFont" format="string" /> </declare-styleable>
XML 版面利用
在「main.xml」佈局中,我們現在可以在TextViewPlus 小工具中使用自訂字體:
<com.example.TextViewPlus customFont="saxmono.ttf" ... />
更新:記憶體擔憂
需要注意的是,此方法會引起對記憶體使用的擔憂。每次呼叫「setCustomFont」時,都會建立一個新的 Typeface 對象,這可能會導致效能問題。對於性能關鍵型應用程序,請考慮替代方法或明智地使用此解決方案。
以上是如何在 Android XML 佈局中高效使用自訂字體?的詳細內容。更多資訊請關注PHP中文網其他相關文章!