国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android 編程下字庫的使用及注意事項

2020-04-11 12:32:32
字體:
來源:轉載
供稿:網友
在安卓操作系統下對于 TextView 字體的支持非常有限,默認情況下 TextView 的 typeface 屬性支持 "Sans","serif","monospace" 這三種字體,如果在沒有指定字體的情況下,系統缺省會使用 "Sans" 作為文本顯示的字體。但這三種字體只支持英文,也就是說只要你顯示的文字是中文,無論你選擇這三種字體中的哪一種,顯示效果都是一樣的。為此,谷歌又提供了另外一種字體的支持方式:字庫。在 Android 2.2 版本中,安卓對字庫的支持是比較有限的,從 Android 2.3.3 版本開始,安卓系統已經能夠支持大部分的字庫。這意味著你在 SDK 版本為 Android 2.2 的平臺下寫的使用字庫的代碼只有在 Android 2.3.3 系統及其更的高版本中才能生效;如果你將代碼運行在 Android 2.2 的系統上,你將不會看到自己所期望的效果,取而代之的是一片空白。

下面來看一下代碼實現過程,在代碼實現實現之前,我們先來看下不同字庫的顯示效果,下圖中第一張圖:SIMKAI.TTF 簡體字-楷體-常規、第二張圖:MSYH.TTF 簡體字-微軟雅黑-常規。


復制代碼 代碼如下:

package cn.sunzn.fonts;
import android.app.Activity;
import android.graphics.Typeface;
import android.os.Bundle;
import android.view.Menu;
import android.widget.TextView;
public class MainActivity extends Activity {
private TextView tv_title;
private TextView tv_author;
private TextView tv_line1;
private TextView tv_line2;
private TextView tv_line3;
private TextView tv_line4;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 在 assets 目錄下創建 fonts 文件夾并放入要使用的字體文件(**.ttf)并提供相對路徑給
* createFromAsset(AssetManager mgr, String path) 來創建 Typeface 對象,再通
* 過TextView.setTypeface(Typeface tf) 指定文本顯示的字體。
*/
Typeface face = Typeface.createFromAsset(getAssets(),"fonts/SIMFANG.TTF");
tv_title = (TextView) findViewById(R.id.tv_title);
tv_title.setTypeface(face);
tv_author = (TextView) findViewById(R.id.tv_author);
tv_author.setTypeface(face);
tv_line1 = (TextView) findViewById(R.id.tv_line1);
tv_line1.setTypeface(face);
tv_line2 = (TextView) findViewById(R.id.tv_line2);
tv_line2.setTypeface(face);
tv_line3 = (TextView) findViewById(R.id.tv_line3);
tv_line3.setTypeface(face);
tv_line4 = (TextView) findViewById(R.id.tv_line4);
tv_line4.setTypeface(face);
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_main, menu);
return true;
}
}

最后,還需要補充說明一下:雖然采用這種方式可以實現自己想要的顯示效果,但是在采用這種方法之前開發人員還是需要考慮下性能消耗和運行環境以及自己 APP 的風格,然后再做出對應的選擇。

原因有以下幾點
•字庫文件的大?。阂驗樽謳斓某叽缟賱t幾兆,多則幾十兆,文件打包的時候對 *.ttf 格式的文件壓縮率很低,所以會無形中增大 APP 的體積。

•運行環境的考慮:如果你的應用面向的是高版本的運行環境,可以考慮使用這種方法,如果用戶的運行環境是 Android 2.2 需要放棄該方法。

•應用風格的考慮:如果你的應用既面向高版本運行環境,并且你的應用中統一使用指定的字體,可以考慮使用該方法;若是單單為了應用中的某幾個字的顯示效果就使用字庫,則會得不償失。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 拜泉县| 柳河县| 安顺市| 夏河县| 成武县| 阿合奇县| 海口市| 德安县| 隆林| 崇文区| 长岛县| 炉霍县| 拉孜县| 江达县| 察雅县| 临沂市| 乐亭县| 苗栗市| 类乌齐县| 昆明市| 丹江口市| 崇文区| 扶沟县| 尖扎县| 泰州市| 桐梓县| 伊金霍洛旗| 安阳县| 静乐县| 桦甸市| 枝江市| 杭州市| 新巴尔虎右旗| 松潘县| 榕江县| 光山县| 东莞市| 凤山市| 平定县| 莱芜市| 六安市|