⑴ 如何在android使用圖標字體
1. 字體文件製作
進入網站https://icomoon.io/->注冊->登錄->點擊IconMoon App
進入字體生成頁面,點擊菜單的Manage Projects項
進入項目管理頁面,看到項目列表,點擊Load
進入項目開始選擇圖標,選擇後點擊右下角的Generate Font
進入生成預覽頁面,點擊Download
解壓文件後,復制fonts/icomoon.ttf字體文件到Android工程的assets/iconify/egow-icon.ttf
字體製作已完成。Hello, I』m John : )
2. Android應用中如何讀取字體
使用開源項目android-iconify
新建Icon類,實現Icon介面
import com.joanzapata.iconify.Icon;
public enum EGOWIcons implements Icon {
ic_glass('uE92D'),
ic_adjustable_bed_frame('uE900'),
ic_air_conditioner('uE901'),
ic_line_chart('uE902');
char character;
EGOWIcons(char character) {
this.character = character;
}
@Override
public String key() {
return name().replace('_', '-');
}
@Override
public char character() {
return character;
}
}
其中uE92D編碼是對應字體文件水杯的編碼
新建Mole類,用於讀取字體文件
import com.joanzapata.iconify.Icon;
import com.joanzapata.iconify.IconFontDescriptor;
public class EGOWMole implements IconFontDescriptor {
@Override
public String ttfFileName() {
return "iconify/egow-icon.ttf";
}
@Override
public Icon[] characters() {
return EGOWIcons.values();
}
}
在Application類中載入字體模塊
Iconify.with(new EGOWMole());11
開始使用字體圖標,iconDrawable繼承Drawable類
IconDrawable iconDrawable = new IconDrawable(context, icon);11
Android中調用字體圖標已完成。Hello, I』m John : )
3. 如何修改字體樣式,包括大小,顏色,透明度
IconDrawable iconDrawable = new IconDrawable(context, icon);
iconDrawable.sizeDp(24); // 大小
iconDrawable.color(color); // 顏色
iconDrawable.setAlpha(222); // 透明度
⑵ 關於android自定義字體,該怎麼處理
解決方案
1)Android默認方法 #1
你可以通過ID查找到View,然後挨個為它們設置字體。在單個View的情況下,它看起來也沒有那麼可怕。
Typeface customFont = Typeface.createFromAsset(this.getAssets(), "fonts/YourCustomFont.ttf");
TextView view = (TextView) findViewById(R.id.activity_main_header);
view.setTypeface(customFont);
但是在很多TextView、Button等文本組件的情況下,我敢肯定你不會喜歡這個方法的。:D
2)Android默認方法 #2
你可以為每個文本組件創建一個子類,如TextView、Button等,然後在構造函數中載入自定義字體。
public class BrandTextView extends TextView {
public BrandTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
public BrandTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public BrandTextView(Context context) {
super(context);
}
public void setTypeface(Typeface tf, int style) {
if (style == Typeface.BOLD) {
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/YourCustomFont_Bold.ttf"));
} else {
super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/YourCustomFont.ttf"));
}
}
}
然後只需要將標準的文本控制項替換成你自定義的就可以了(例如BrandTextView替換TextView)。
<com.your.package.BrandTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="View with custom font"/>
<com.your.package.BrandTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textStyle="bold"
android:text="View with custom font and bold typeface"/>
還有,你甚至可以直接在XML中添加自定義的字體屬性。要實現這個,你需要定義你自己的declare-styleable屬性,然後在組件的構造函數中解析它們。
為了不佔篇幅介紹這么基礎的東西,這里有一篇不錯的文章告訴你怎麼自定義控制項屬性。
http://kevindion.com/2011/01/custom-xml-attributes-for-android-widgets/
在大多數情況下,這個方法還不賴,並且有一些優點(例如,切換字體粗細等等,字體可以在組件xml文件的typeface屬性中定義)。但是我認為這個實現方法還是太重量級了,並且依賴大量的模板代碼,為了一個替換字體的簡單任務,有點兒得不償失。
3)我的解決方案
理想的解決方案是自定義主題,然後應用到全局或者某個Activity。
但不幸的是,Android的android:typeface屬性只能用來設置系統內嵌的字體,而非用戶自定義字體(例如assets文件中的字體)。這就是為什麼我們無法避免在java代碼中載入並設置字體。
所以我決定創建一個幫助類,使得這個操作盡可能的簡單。使用方法:
FontHelper.applyFont(context, findViewById(R.id.activity_root), "fonts/YourCustomFont.ttf");
並且這行代碼會用來載入所有的基於TextView的文本組件(TextView、Button、RadioButton、ToggleButton等等),而無需考慮界面的布局層級如何。
標准(左)與自定義(右)字體的用法。
Standard (left) and Custom (right) fonts usage.
這是怎麼做到的?非常簡單:
public static void applyFont(final Context context, final View root, final String fontName) {
try {
if (root instanceof ViewGroup) {
ViewGroup viewGroup = (ViewGroup) root;
for (int i = 0; i < viewGroup.getChildCount(); i++)
applyFont(context, viewGroup.getChildAt(i), fontName);
} else if (root instanceof TextView)
((TextView) root).setTypeface(Typeface.createFromAsset(context.getAssets(), fontName));
} catch (Exception e) {
Log.e(TAG, String.format("Error occured when trying to apply %s font for %s view", fontName, root));
e.printStackTrace();
}
}
正如你所看到的,所需要做的僅僅是將基於TextView的文本組件從布局中遍歷出來而已。
⑶ 如何在Android開發中使用自定義的字體庫
Android系統默認支持三種字體,分別為:「sans」, 「serif」, 「monospace",除此之外還可以使用其他字體文件(*.ttf)
方法一:XML中使用android默認字體: android:typeface
方法二:在Android中可以引入其他字體,首先要將字體文件保存在assets/fonts/目錄下
//得到TextView控制項對象 TextView textView =(TextView)findViewById(R.id.custom);
//將字體文件保存在assets/fonts/目錄下,創建Typeface對象
Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf");
//使用字體
textView.setTypeface(typeFace);
⑷ android字體包怎麼弄
先下載安卓字體:
http://www.cr173.com/down.asp?id=36990
再進行Root:下載SuperOneClick(PC軟體),連接USB,安裝好驅動程序,運行SuperOneClick。
安裝ROotExplorer文件管理器
http://www.an.com/soft_90800.html#
接下來就要把字體文件復制進去了
⑸ android 怎麼加入字體包
工具
Eclipse
方法
在Eclipse中新建Android工程fontdemo
代碼只有MainActivity.javaCustomFontTextView.java
布局文件是activity_main.xml。assets下面是使用的字體庫文件
⑹ androidStudio中怎麼載入字體資源
首先在androidstudio中找到assets文件夾 , (位於serc/main/java下,與res在同一個文件裡面) , 找到之後將字體文件(*.ttf)放入這個文件夾下(當然為了規范起見,我們可以再asseets下建立一個font文件夾表示存放字體文件). 如圖所示:
其中context.getAssets()方法是用於載入assets文件夾 , "OpenSans-Regular.ttf"是字體文件的相對路徑 , 細心的同學可以看見我的assert中有兩個相同的字體文件 ,
其中一個在font文件夾下面 , 如果想要載入這個文件夾就要使用:
Typeface tf = Typeface.createFromAsset(getAssets(), "font/OpenSans-Regular.ttf"); 在View中顯示這種字體的使用就用setTypeface就行了
⑺ Android:從SD卡中載入自定義的字體
找了下資料
這個應該可以static
Typeface
createFromFile(File
path)
//靜態方法,從文件系統構造一個字體,這里參數可以是sdcard中的某個字體文件