我在想,的優勢(除了有不同的字體)並根據使用自定義字體的產品的商標使用它嗎?在Android上使用或不使用自定義字體
但更重要的是,真正的缺點?我在這個答案https://stackoverflow.com/a/4734610/327011中讀到,至少OTF有問題,其中一些在根據PPI的特定設備中表現得更多。
因此,對於那些有用的人和那些因爲他們不認爲他們應該的人而言,你有什麼意見和論點?
感謝
我在想,的優勢(除了有不同的字體)並根據使用自定義字體的產品的商標使用它嗎?在Android上使用或不使用自定義字體
但更重要的是,真正的缺點?我在這個答案https://stackoverflow.com/a/4734610/327011中讀到,至少OTF有問題,其中一些在根據PPI的特定設備中表現得更多。
因此,對於那些有用的人和那些因爲他們不認爲他們應該的人而言,你有什麼意見和論點?
感謝
再說什麼CommonsWare說,(這是我第一次接受的答案),我發現了一個重大的錯誤,創建使用自定義字體時的內存泄漏:
http://code.google.com/p/android/issues/detail?id=9904#c7
正因爲如此,我傾向於認爲使用它們並不是一個好的理念......或者至少要當心使用它們!
如果確實需要使用它們,你可以利用這一點避免內存泄漏的最重要的部分:
public class Typefaces {
private static final String TAG = "Typefaces";
private static final Hashtable<String, Typeface> cache = new Hashtable<String, Typeface>();
public static Typeface get(Context c, String assetPath) {
synchronized (cache) {
if (!cache.containsKey(assetPath)) {
try {
Typeface t = Typeface.createFromAsset(c.getAssets(),
assetPath);
cache.put(assetPath, t);
} catch (Exception e) {
Log.e(TAG, "Could not get typeface '" + assetPath
+ "' because " + e.getMessage());
return null;
}
}
return cache.get(assetPath);
}
}
}
有一個在Android 2.1的一個已知的bug,其中WebView
不顯示自定義字體(通過CSS @字體面指定)。
另外,字體很大,並且相當大地增長APK。低帶寬和每個帶寬用戶會討厭你。
您可以添加自定義字體,使您的應用看起來很漂亮,從人羣中脫穎而出,符合某些品牌標識等。另外,打包自己的字體可爲您提供最終控制。製造商可以自由地爲他們自己的皮膚改變標準主題(包括字體),例如HTC Sense,三星TouchWiz等)。
唯一真正的缺點是,你必須在你的apk文件中加入自定義字體(這會增加下載的大小),並且你需要在使用自定義字體的每個活動中使用樣板代碼(例如,你不能簡單地指定自定義字體到textview/edittext等通過XML)。
舊版本的Android(即< 1.6)可能不支持您的字體,但截至今天,這是< 0.6%的市場。 http://developer.android.com/resources/dashboard/platform-versions.html
除了通過現有的回答中引用的缺點,還要考慮: