溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Android中怎么設(shè)置字體

發(fā)布時間:2021-06-26 15:28:55 來源:億速云 閱讀:218 作者:Leah 欄目:移動開發(fā)

今天就跟大家聊聊有關(guān)Android中怎么設(shè)置字體,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

1、在Android XML文件中設(shè)置字體

可以采用Android:typeface,例如android:typeface=”monospace”。在這里例子中我們在Activity中對android:text=”Hello, World! 您好”分別進行了四種顯示方式,依次為“Sans”,“serif”,“monospace”和系統(tǒng)缺省方式(經(jīng)試驗缺省采用采用sans)。英文字體有差異,貌似中文字體沒有差異。XML文件如下:

java代碼:

<?xml version=”1.0&Prime; encoding=”utf-8&Prime;?>   <TableLayout &hellip; &hellip; android:stretchColumns = “1&Prime;> <TableRow> <TextView android:text=”sans:”   android:layout_marginRight=”4px”   android:textSize=”20sp” /> <TextView android:text=”Hello, World! 您好”  android:typeface =”sans” <!&ndash; android:typeface用于指定字體&ndash;>   android:textSize=”20sp” /> </TableRow> &hellip; &hellip;類同,依次設(shè)置兩個TableRow,分別將sans 修改為serif,monospace &hellip; &hellip;   <TableRow>   <TextView android:text=”custom:” &hellip;. />   <TextView android:id=”@+id/c12_custom”   android:text=”Hello, World! 您好”   android:textSize=”20sp” />   </TableRow>   </TableLayout>

2、使用其他字體

1)將新字體的TTF文件copy到assets/fonts/目錄下面,例如我們將“*.ttf”copy了過去。

2)我們需要將widget設(shè)置為該字體,比較遺憾的是,不能直接在XML文件中進行,需要編寫源代碼。

java代碼:

TextView tv = (TextView)findViewById(R.id.c12_custom);  //從assert中獲取有資源,獲得app的assert,采用getAserts(),通過給出在assert/下面的相對路徑。在實際使用中,字體庫可能存在于SD卡上,可以采用createFromFile()來替代createFromAsset。   Typeface face = Typeface.createFromAsset (getAssets() , “fonts/timesi.ttf” );  tv.setTypeface (face);

我在模擬器中先后導(dǎo)入華文行楷的字體,大約4M,但是系統(tǒng)無法識別出該字體,沒有顯示,然后嘗試使用英文字體timesi.ttf,正常。因此Android并非和所有的TTF字體都能兼容,尤其在中文特殊字體的支持會存在問題,對于不兼容的字體,Android不出報錯,只是無法正常顯示。一般而言我們都會使用系統(tǒng)缺省提供的字體。
對于華文行楷字體,我們一開始使用的文件是中文名字,出現(xiàn)報錯,后來我們將之改為全小寫的英文名稱就不會出錯,所以在文件命名上需要注意。

3、一些注意

使用其他字庫,都會消耗程序的空間,這是要非常注意的。而且這些字庫有時并不能完全提供你所需要的文字。
 舉個例子,省略方式。當文字太多的時候,可以通過省略號省略后面的內(nèi)容,省略號是使用“&hellip;”作為一個字體,可通過android:ellipsize屬性進行設(shè)置。如果我們需要使用省略功能,需要確保字體具有省略號。此外,為了保證長度的一直,Android會進行填充處理,除了將一個字符更換為省略符合外,后面的字符將更換為一個特殊的Unicode字符,&lsquo;ZERO WIDTH NO-BREAK SPACE&rsquo; (U+FEFF)。這個字符并占用任何可視的位置,但是保障了string具有同樣的長度。不是所有的字體都支持這個特殊的字符,可能會引發(fā)一些亂碼現(xiàn)象。

Android中怎么設(shè)置字體

看完上述內(nèi)容,你們對Android中怎么設(shè)置字體有進一步的了解嗎?如果還想了解更多知識或者相關(guān)內(nèi)容,請關(guān)注億速云行業(yè)資訊頻道,感謝大家的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI