目錄
了解iconify
使用iconify
1. 了解iconify
iconify是一個矢量圖示庫,包含使用 Dave Gandy 制作的超過370中矢量字型圖示,可以使Android應用開發者免于制作多種适用于不同螢幕大小尺寸的圖檔,進而提高開發者工作效率。
适用場景:
1、iconify原作者提供了三種他自定義的控件:
IconTextView、IconButton、IconToggleButton,
可以直接使用這三類控件來顯示iconify中提供的字型圖示。
2、在java代碼中通過使用一個IconDrawable為具有setIcon(Drawable drawable)方法的控件設定該字型圖示
iconify優缺點:
優點:由于這些圖示均是矢量字型圖示,是以不僅可以無限放大而不會失真,模糊,而且可以将适用于text的屬性應用于這些矢量圖示上,進而實作改變圖示顔色、添加陰影等效果
缺點:目前在xml檔案中使用圖示庫中的資源時,需要自己對照查閱不同圖示所對應的标記,自己手敲标記,這樣不僅麻煩,而且容易出錯。
2. 使用iconify
① 添加依賴
在需要使用iconify的app的build.gradle的dependencies中添加依賴。
(下面添加了整個庫,在實際開發過程中,可以隻添加自己需要的某一個或幾個庫即可)
dependencies {
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.2.2' // (v4.5)
compile 'com.joanzapata.iconify:android-iconify-entypo:2.2.2' // (v3,2015)
compile 'com.joanzapata.iconify:android-iconify-typicons:2.2.2' // (v2.0.7)
compile 'com.joanzapata.iconify:android-iconify-material:2.2.2' // (v2.0.0)
compile 'com.joanzapata.iconify:android-iconify-material-community:2.2.2' // (v1.4.57)
compile 'com.joanzapata.iconify:android-iconify-meteocons:2.2.2' // (latest)
compile 'com.joanzapata.iconify:android-iconify-weathericons:2.2.2' // (v2.0)
compile 'com.joanzapata.iconify:android-iconify-simplelineicons:2.2.2' // (v1.0.0)
compile 'com.joanzapata.iconify:android-iconify-ionicons:2.2.2' // (v2.0.1)
}
② 初始化android-iconify
記得聲明自定義的Application
public class MyApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
Iconify
.with(new FontAwesomeModule())
.with(new EntypoModule())
.with(new TypiconsModule())
.with(new MaterialModule())
.with(new MaterialCommunityModule())
.with(new MeteoconsModule())
.with(new WeathericonsModule())
.with(new SimpleLineIconsModule())
.with(new IoniconsModule());
}
}
③ 使用
android:id="@+id/itv_test"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shadowColor="#22000000"
android:shadowDx="3"
android:shadowDy="3"
android:shadowRadius="1"
android:text="I {fa-heart-o 12dp} to {fa-code 20dp} on {fa-android 40dp}"
android:textColor="@color/purple"
android:textSize="40sp" />