Android 如何應用ttf圖示字型庫
轉載請註明出處:http://blog.csdn.net/yyh352091626/article/details/53113677
作為一個Android開發者,自己想做一個app練手,有個比較頭疼的問題就是沒有UI圖示資源~~ 其實很容易搞定的,下面就來聊聊如何在Android中應用圖示字型庫,找圖示不再糾結!
圖示庫傳送門:https://icomoon.io/app/#/select
1、點選左上角選單 -> Manager Projects 進入管理頁面。
2、點選New Project, 建立一個工程,如First App並點選Load>
3、點選Add Icon From Libray,去選擇自己喜歡的Library,點選+Add新增到工程裡面。Library有收費的,也有免費的,視情況而定。
4、轉到資源頁面。選擇自己想要下載的圖示,怎麼都是灰色的?安啦,後面有驚喜!
5、點選右下角Generate Font,生成ttf字型庫。
上面四個圖示就是我前面選中的,下面的諸如e911文字就是圖示對應的unicode符號,中文字型也是這麼一個道理。點選download下載字型庫。
6、下載完成,解壓。拷貝fonts/icomoon.ttf 到 android-assets/fonts 下面。
7、應用字型。首先建一個字型“對映”類,反正官方不太推薦用列舉方式,暫且就用註解吧~~ 開啟剛才解壓包裡面的demo.html,對應來建立字型對映。
import android.support.annotation.StringDef;
/**
* @author yuyh.
* @date 2016/11/10.
*/
@StringDef({
MDFonts.HOME,
MDFonts.NEWSPAPER,
MDFonts.MUSIC,
MDFonts.PLAY
})
public @interface MDFonts {
String HOME = "\ue902";
String NEWSPAPER = "\ue904";
String MUSIC = "\ue911";
String PLAY = "\ue912";
}
import android.content.Context;
import android.graphics.Typeface;
import android.widget.TextView;
/**
* @author yuyh.
* @date 2016/11/10.
*/
public class MDFontsUtils {
public static Typeface OCTICONS;
/**
* Get octicons typeface
*
* @param context
* @return octicons typeface
*/
public static Typeface getOcticons(final Context context) {
if (OCTICONS == null)
OCTICONS = getTypeface(context, "fonts/icomoon.ttf");
return OCTICONS;
}
/**
* Set octicons typeface on given text view(s)
*
* @param textViews
*/
public static void setOcticons(final TextView... textViews) {
if (textViews == null || textViews.length == 0)
return;
Typeface typeface = getOcticons(textViews[0].getContext());
for (TextView textView : textViews)
textView.setTypeface(typeface);
}
/**
* Get typeface with name
*
* @param context
* @param name
* @return typeface
*/
public static Typeface getTypeface(final Context context, final String name) {
return Typeface.createFromAsset(context.getAssets(), name);
}
}
9、圖示對應是用TextView表示,而不是ImageView。如下:
<TextView
android:id="@+id/tvMusic"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textSize="16dp" />
<TextView
android:id="@+id/tvHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textSize="16dp" />
在Java中應用字型。如下:
tvMusic = (TextView) findViewById(R.id.tvMusic);
tvMusic.setText(MDFonts.MUSIC);
tvHome = (TextView) findViewById(R.id.tvHome);
tvHome.setText(MDFonts.HOME);
// 應用字型
MDFontsUtils.setOcticons(tvMusic, tvHome);
run起來,大功告成!
10、你會發現,run起來圖示顏色全是Android預設的灰色,那麼怎麼更改圖示顏色呢?剛才說了,圖示字型用的是TextView,實際上他跟中文英文字型沒什麼兩樣,他本質上還是文字。所以,TextView怎麼設定字型大小、字型顏色,這裡就對應怎麼設定。如下:
tvHome.setTextColor(Color.RED);
tvHome.setTextSize(50);
哈哈,沒毛病!
當然,也可以把字型符號配置在string.xml
<string name="icon_home" translatable="false">\ue902</string>
<TextView
android:id="@+id/tvHome"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_margin="10dp"
android:textSize="16dp"
android:text="@string/icon_home" />
// 當然,還需要下面這步來應用設定
MDFontsUtils.setOcticons(tvHome);
更多用法大家就自行擴充套件吧!比如可以自定義一個TextView,直接應用字型,就不需要MDFontsUtils.setOcticons(tvHome);
這步操作了,自己用就可以啦!
感謝閱讀!
相關文章
- Uni-app 中使用 .ttf 字型圖示APP
- 圖示字型 VS 雪碧圖——圖示字型應用實踐
- 字型圖示的應用
- Android WebView載入TTF字型AndroidWebView
- 如何在 Android 應用中使用 FontAwesome 圖示Android
- Flutter 125: 圖解自傳 ACE_ICON.ttf 圖示庫Flutter圖解
- C++的DuiLib介面庫可以呼叫並載入fontawesome-webfont.ttf的網路字型圖示啦C++UIWeb
- 字型圖示固用程式碼
- 【Flutter 專題】125 圖解自傳 ACE_ICON.ttf 圖示庫Flutter圖解
- Android應用設定多個啟動圖示,動態列換應用圖示Android
- (原創)IconFont(向量圖示字型)在Winform中的應用ORM
- Android動態更換應用圖示Android
- 如何使用 Javascript 將圖示字型渲染為圖片JavaScript
- 如何在移動端app中應用字型圖示icon fontsAPP
- Android自定義字型--自定義TextView(可擴充套件不同ttf字Android自定義字型TextView套件
- win10如何修改應用圖示_win10怎麼更換應用圖示Win10
- FontAwesome v5.11.2 字型圖示元件庫(Axure元件庫)元件
- win10桌面圖示字型大小怎麼調_win10桌面圖示字型大小如何設定Win10
- Android動態修改應用圖示和名稱Android
- 如何在微信小程式中使用字型圖示微信小程式
- Css字型圖示引入方式CSS
- Android 8.0 自適應圖示Android
- Android實現修改狀態列背景 字型 圖示顏色Android
- 使用svg製作字型圖示SVG
- Windows 和 Linux 上安裝 TTF 字型的方法WindowsLinux
- Swift如何在應用中新增圖示更換功能Swift
- Android 12(S) 圖形顯示系統 - 示例應用(二)Android
- [譯] 為你的 React 應用製作 SVG 圖示庫ReactSVG
- C# 讀取 ttf字型檔案裡的 UnicodeC#Unicode
- three.js 顯示中文字型 和 tween應用JS
- Web字型圖示-自動化方案Web
- 小程式中使用字型圖示
- Css字型圖示偽元素方式引入CSS
- MacW資訊:如何讓你的應用圖示變得小巧Mac
- Jenkins實戰之動態替換Android應用圖示JenkinsAndroid
- Android應用開發-圖片載入庫GlideAndroidIDE
- Flutter第7天–字型圖示+綜合小案例+Android程式碼互動FlutterAndroid
- Flutter第7天--字型圖示+綜合小案例+Android程式碼互動FlutterAndroid