簡體   English   中英

如何在android中檢索可用/已安裝字體的列表?

[英]How to retrieve a list of available/installed fonts in android?

在Java中,我會做類似的事情:

java.awt.GraphicsEnvironment ge = 
                      java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = ge.getAllFonts(); 

有安卓版嗎?

摘自 Mark Murphy 在 Android Developers 郵件列表上的回答:

http://developer.android.com/reference/android/graphics/Typeface.html

只有三種字體:normal (Droid Sans)、serif (Droid Serif) 和 monospace (Droid Sans Mono)。

雖然 WebKit 中的某個地方可能隱藏着其他字體,但 WebKit 之外的開發人員似乎無法訪問它們。 :-(

唯一的其他字體是您與應用程序捆綁在一起的任何 TrueType 字體。

編輯:Roboto 是 Android 4.0 中的一種新字體。 您可以使用這個庫項目在所有版本中使用它回到 API 級別 4 https://github.com/mcalliph/roboto-text-view

關於實際問題,這是一種創建已安裝的所有可用字體列表的方法:

String path = "/system/fonts";
File file = new File(path);
File ff[] = file.listFiles();

數組 ff[] 將包含所有字體文件。

android 中只有 3 種字體可用; 正常 (Droid Sans)、襯線 (Droid Serif) 和等寬字體 (Droid Sans Mono)。

應用程序可以包含自己的 truetype 字體,但不能安裝它們以供其他應用程序使用。

關於字體的幾個鏈接:

這個答案不是一個程序化的解決方案,但實際的 ttf 字體似乎存儲在 /system/fonts 目錄中。 使用adb shell ls /system/fonts列出它們,或adb pull /system/fonts將它們全部傳輸到連接的計算機(adb 將創建一個名為“fonts”的文件夾)。

從 Android 29 開始,為您提供android.graphics.fonts.Font的實際集合,有SystemFonts.getAvailableFonts()

https://developer.android.com/reference/kotlin/android/graphics/fonts/SystemFonts?hl=en#getAvailableFonts()

Android 包括 3 種基本字體,但與 iOS 不同的是,它允許您使用幾乎任何您喜歡的字體。 您可以簡單地將它嵌入到您的應用程序中,而不是像 Apple 那樣受限於預設的字體列表(Apple 不允許字體嵌入)。 挺方便的。

請注意,這是針對 Android 本身,但網絡瀏覽器(包括基本預裝的 Android 網絡瀏覽器)確實支持所有標准 HTML 字體。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM