0
我正在嘗試爲整個應用程序使用Roboto字體。創建字體對象並將其應用於所有字段需要工作但繁瑣,因爲字段的數量在每個TextView上分開了findViewId(),Button會降低性能。 我正在嘗試進行配置,因爲大多數人都在互聯網上提出建議,但我無法使用Roboto。我得到「無襯線燈」,因爲沒有被識別。整個應用程序的Roboto字體
請建議遵循哪種方法。
我正在嘗試爲整個應用程序使用Roboto字體。創建字體對象並將其應用於所有字段需要工作但繁瑣,因爲字段的數量在每個TextView上分開了findViewId(),Button會降低性能。 我正在嘗試進行配置,因爲大多數人都在互聯網上提出建議,但我無法使用Roboto。我得到「無襯線燈」,因爲沒有被識別。整個應用程序的Roboto字體
請建議遵循哪種方法。
創建一個類,
public class CustomTextView extends TextView {
static Typeface Roboto_Bold = Typeface.createFromAsset(Global.mainActivity.getAssets(), "Roboto-Bold.ttf");
static Typeface Roboto_Regular = Typeface.createFromAsset(Global.mainActivity.getAssets(), "Roboto-Regular.ttf");
並在構造函數添加以下代碼,使用CustomTextView在整個應用程序,而不是TextView的
try {
int style = getTypeface().getStyle();
if (style == (Typeface.BOLD)) {
isBold = true;
}
} catch (Exception e) {
e.printStackTrace();
}
if (isBold)
this.setTypeface(Roboto_Bold);
else
this.setTypeface(Roboto_Regular);
-----更新,
我最近發現自定義字體將以巨大的內存消耗存儲在本機內存中。因此,在自定義TextView類中創建字體會在很大程度上填充本機內存(在我的情況下爲300 MB)取決於創建的TextView實例的數量。
因此,更好地創造出TextView的指因此減少內存消耗(對我來說20 MB)
,如果你有一個以上的自定義視圖的使用字樣考慮全局靜態字樣
只是一個提醒靜態字樣對象,Roboto可能會在Android 4.0及更高版本上推出。如果你想使用「自定義字體」,你必須以編程方式進行。 – gian1200
我正在使用ICS;所以,唯一的方法是編程式的...基於文本視圖和按鈕的數量,這是一個相當繁瑣的任務 – harshal
如果您的minSdkVersion是ICS(第14版),那麼它很有可能是設備具有Roboto。但是,這並不意味着它將成爲默認字體。談到性能和最小化內存和CPU使用率,我建議使用和重用靜態方法(Singleton風格)從Assets加載字體以避免額外的分配。 CTRL + C和CRTL + V也是好朋友:P – gian1200