❶ android怎麼設置app使用的默認字體庫
Android系統自帶有對字體的設置,這些設置是對字體的顯示方式的設置,比如加粗,傾斜,下劃線,字型大小等,但是對於字體本身,比如設置為楷體,隸書等貌似沒有。Android系統只有一種默認的,如果需要修改字體,或者引用自己喜歡的字體,那麼就需要自己設置或修改。
修改系統的字體可以下載修改字體的app即可,但是如果是對於開發者想在自己的app中使用具有自己個性的文字,可以按下面介紹的方法做(這里只是其中一種方法,相信,應該還有很多方法的)
·將自定義的字體所在的ttf文件到工程assets/fonts/目錄下面
一般字體的格式為ttf的。在C:\WINDOWS\Fonts目錄下有windows系統提供的字體,可以使用。也可以自己通過coreldraw+fontcreator軟體自己製作字體
·在源碼中進行如下修改:
TextView tv = (TextView)findViewById(R.id.c12_custom);1
//從assert中獲取有資源,獲得app的assert,採用getAserts(),通過給出在assert/下面的相對路徑。在實際使用中,字體庫可能存在於SD卡上,可以採用createFromFile()來替代createFromAsset。
Typeface face = Typeface.createFromAsset ( getAssets() , 「fonts/timesi.ttf」 );
tv.setTypeface (face);12
設置字體不能直接在XML文件中進行,需要通過源碼來完成。
通過這兩步就可以對TextView對象tv的字體進行了修改,改成自己定義的字體timesi.ttf
Android並非和所有的TTF字體都能兼容,尤其在中文特殊字體的支持會存在問題,對於不兼容的字體,Android不出報錯,只是無法正常顯示。
一些注意
字型檔一般會很大,因為要將包括很多的字元集,使用其他的字型檔,這樣就會增大程序的體積。可以使用FontCreator軟體對字型檔進行裁剪,使其體積變小。如果字型檔比較大,可以考慮放在sdcard上,使用createFromFile來獲得Typeface對象
有些字型檔可能並不會包括我們需要的字元,比如為了節省字型檔的體積,將中文字元取消,這樣如果想使用這個字型檔顯示中文的話,肯定是不成功的。
這里再對程序中出現的源碼進行解釋。
修改字體就是調用setTypeface方法。這個方法的參數是一個Typeface類對象
Typeface是字體類
這個類比較簡單,這里列出它的成員方法(這些方法都是靜態方法,返回Typeface對象,可以直接作為setTypeface的參數):
·static Typeface create(Typeface family, int style) //靜態方法,參數一為字體類型這里是Typeface的靜態定義,如宋體,參數二風格,如粗體,斜體
·static Typeface create(String familyName, int style) //靜態方法,參數一為字體名的字元串,參數二為風格同上,這里我們推薦使用上面的方法。
·static Typeface createFromAsset(AssetManager mgr, String path) //靜態方法,參數一為AssetManager對象,主要用於從APK的assets文件夾中取出字體,參數二為相對於Android工程下的assets文件夾中的外掛字體文件的路徑。
·static Typeface createFromFile(File path) //靜態方法,從文件系統構造一個字體,這里參數可以是sdcard中的某個字體文件
·static Typeface createFromFile(String path) //靜態方法,從指定路徑中構造字體
·static Typeface defaultFromStyle(int style) //靜態方法,返回默認的字體風格
本類的常量靜態定義,首先為字體類型名稱
Typeface DEFAULT
Typeface DEFAULT_BOLD
Typeface MONOSPACE
Typeface SANS_SERIF
Typeface SERIF
字體風格名稱
int BOLD
int BOLD_ITALIC
int ITALIC
int NORMAL
這些變數都可以通過名稱知道其意思
❷ 如何在Android開發中使用自定義的字體庫
1、Android系統默認支持三種字體,分別為:「sans」, 「serif」, 「monospace
2、在Android中可以引入其他字體 。
<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:Android="http://schemas.android.com/apk/res/android"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent" >
<TableRow>
<TextView
Android:layout_marginRight="4px"
Android:text="sans:"
Android:textSize="20sp" >
</TextView>
<!-- 使用默認的sans字體 -->
<TextView
Android:id="@+id/sans"
Android:text="Hello,World"
Android:textSize="20sp"
Android:typeface="sans" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:layout_marginRight="4px"
Android:text="serif:"
Android:textSize="20sp" >
</TextView>
<!-- 使用默認的serifs字體 -->
<TextView
Android:id="@+id/serif"
Android:text="Hello,World"
Android:textSize="20sp"
Android:typeface="serif" >
</TextView>
</TableRow>
<TableRow>
<TextView
Android:layout_marginRight="4px"
Android:text="monospace:"
Android:textSize="20sp" >
</TextView>
<!-- 使用默認的monospace字體 -->
<TextView
Android:id="@+id/monospace"
Android:text="Hello,World"
Android:textSize="20sp"
Android:typeface="monospace" >
</TextView>
</TableRow>
<!-- 這里沒有設定字體,我們將在java代碼中設定 -->
<TableRow>
<TextView
Android:layout_marginRight="4px"
Android:text="custom:"
Android:textSize="20sp" >
</TextView>
<TextView
Android:id="@+id/custom"
Android:text="Hello,World"
Android:textSize="20sp" >
</TextView>
</TableRow>
</TableLayout>
// 得到TextView控制項對象
TextView textView = (TextView) findViewById(R.id.custom);
// 將字體文件保存在assets/fonts/目錄下,www.linuxidc.com創建Typeface對象
Typeface typeFace = Typeface.createFromAsset(getAssets(),"fonts/DroidSansThai.ttf");
// 應用字體
textView.setTypeface(typeFace);
如果想對整個界面的所有控制項都應用自定義字體,可以:
package arui.blog.csdn.NET;
import android.app.Activity;
import android.graphics.Typeface;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class FontManager {
public static void changeFonts(ViewGroup root, Activity act) {
Typeface tf = Typeface.createFromAsset(act.getAssets(),
"fonts/xxx.ttf");
for (int i = 0; i < root.getChildCount(); i++) {
View v = root.getChildAt(i);
if (v instanceof TextView) {
((TextView) v).setTypeface(tf);
} else if (v instanceof Button) {
((Button) v).setTypeface(tf);
} else if (v instanceof EditText) {
((EditText) v).setTypeface(tf);
} else if (v instanceof ViewGroup) {
changeFonts((ViewGroup) v, act);
}
}
}
}
❸ 安卓手機更改了字體,系統字體改變了為什麼應用程序的字體沒有改變
應用程序的字體沒變可能是操作失誤,具體方法為:
1、Android在寫程序的時候谷歌早已將所有字體都默認好了具體是什麼字體,自己也沒去研究,所以假如說要讓程序的字體變成自己想要的字體也是件不容易的事情,首先你要先下載字體庫(後綴為ttf),英文的字體庫還不算大,而一般來說中文的字體庫就很大,所以可以更加程序裡面出現的文字,對字體庫進行裁剪。要下載字體庫的可以上網下載,網上一堆的是,csdn裡面的比較摳門,字體庫居然還要積分,都不想吐槽了。
2、下載完字體庫後,你工程目錄assets文件夾中,新建一個文件夾「fonts」用於放字體庫,然後再加字體庫(.ttf)放到fonts文件夾下,當然你的字體庫文件不能以中文命名。
3、重寫Textview,創建一個類繼承TextView,代碼如下:
public class ChineseTextView extends TextView {
public ChineseTextView(Context context, AttributeSet attrs) {
super(context, attrs);
/*
* 必須事先在assets底下創建一fonts文件夾 並放入要使用的字體文件(.ttf)
* 並提供相對路徑給creatFromAsset()來創建Typeface對象
*/
Typeface fontFace = Typeface.createFromAsset(context.getAssets(),
"fonts/Microsoft.ttf");
// 字體文件必須是true type font的格式(ttf);
// 當使用外部字體卻又發現字體沒有變化的時候(以 Droid Sans代替),通常是因為
// 這個字體android沒有支持,而非你的程序發生了錯誤
setTypeface(fontFace);
}
}
4、在xml布局文件直接用這個類代替Textview便可以:
<com.example.androidsetting.ChineseTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" />
❹ android 怎麼加入字體包
工具
Eclipse
方法
在Eclipse中新建Android工程fontdemo
代碼只有MainActivity.javaCustomFontTextView.java
布局文件是activity_main.xml。assets下面是使用的字體庫文件
❺ 如何在 Android 上使用思源黑體作為系統字體
上面的鏈接裡面的網路雲網盤好像已經失效了。我昨天MX3刷機了(Flyme3.7.3A),字體又折騰了好久:自己從魅族官網上下個Samsung
Note
3刷Flyme
4的刷機包裡面提取出字體文件(因為魅族自己的更新包是bin文件沒法解開(…)。經試驗,那裡面的SourceHanSansCN-Normal和Roboto-Light放在一起看上去字重感覺還好。)順便把Roboto字體全都換成了新版的,和Android
一樣。
附上整個flyme
4的整個fonts文件夾壓縮包下載地址:fonts.zip_from
flyme4.0.zip_免費高速
同問。
思源黑體下載下來通常是OTF格式,android默認使用ttf格式。
經多次試驗,格式轉換已經不是問題了,直接將思源黑體各字體的文件後綴更改為ttf即可,勿需用什麼轉換軟體。(目前經轉換軟體轉換後均會丟失細節,完全無感)
但是,將更換後綴的字體文件導入android使用仍然存在問題,即所謂行距問題,會出現上移,間距增大,割裂等效果。
補充1:正在試樓上提供的新文件包,謝謝!~
補充2:經測試,樓上提供的MX4轉換好的字體文件還是存在同樣的問題。1.字體經過轉換,已經失真;2.導入到android後出現行距問題。
行距問題可能是字體設計、設置之類的問題,需要專業人士處理吧。
Hyman,熱愛刷機的宅男,苦逼的醫學生。
root以後用刷機精靈可以更換系統字體,它提供了思源黑體的選項。
發布於
2015-02-15
添加
•
作者保留權利
贊同0反對,不會顯示你的姓名
知乎用戶,字體愛好者,腦洞奇男子
抖個機靈……
請使用Android5.0以上系統……
最基本的替換:
1、需要
root
許可權以及可以瀏覽
root
目錄的文件管理器(比如
re
管理器)
2、下載
ttf
版本的字體文件,選擇合適字重(個人認為
Regular
比較合適)。
Google和Adobe合體開發開源的【思源黑體】.ttf下載
❻ android字體包怎麼弄
先下載安卓字體:
http://www.cr173.com/down.asp?id=36990
再進行Root:下載SuperOneClick(PC軟體),連接USB,安裝好驅動程序,運行SuperOneClick。
安裝ROotExplorer文件管理器
http://www.an.com/soft_90800.html#
接下來就要把字體文件復制進去了