在需要使用iconify的app的build.gradle的dependencies中添加依赖(下面添加了整个库,在实际开发过程中,可以只添加自己需要的某一个或几个库即可):
dependencies {
compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.2.1' // (v4.5)
compile 'com.joanzapata.iconify:android-iconify-entypo:2.2.1' // (v3,2015)
compile 'com.joanzapata.iconify:android-iconify-typicons:2.2.1' // (v2.0.7)
compile 'com.joanzapata.iconify:android-iconify-material:2.2.1' // (v2.0.0)
compile 'com.joanzapata.iconify:android-iconify-material-community:2.2.1' // (v1.4.57)
compile 'com.joanzapata.iconify:android-iconify-meteocons:2.2.1' // (latest)
compile 'com.joanzapata.iconify:android-iconify-weathericons:2.2.1' // (v2.0)
compile 'com.joanzapata.iconify:android-iconify-simplelineicons:2.2.1' // (v1.0.0)
compile 'com.joanzapata.iconify:android-iconify-ionicons:2.2.1' // (v2.0.1)}
自定义一个继承自Application类的类:
import android.app.Application;
import com.joanzapata.iconify.Iconify;
import com.joanzapata.iconify.fonts.EntypoModule;
import com.joanzapata.iconify.fonts.FontAwesomeModule;
import com.joanzapata.iconify.fonts.IoniconsModule;
import com.joanzapata.iconify.fonts.MaterialCommunityModule;
import com.joanzapata.iconify.fonts.MaterialModule;
import com.joanzapata.iconify.fonts.MeteoconsModule;
import com.joanzapata.iconify.fonts.SimpleLineIconsModule;
import com.joanzapata.iconify.fonts.TypiconsModule;
import com.joanzapata.iconify.fonts.WeathericonsModule;
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());
}
}
在manifest文件中的application中声明使用自定义的MyApplication:
android:name="com.application.MyApplication"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name">
经过以上几步就可以在应用中使用iconify图标了,如在布局文件中的使用:
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.activity.NewTaskActivity"
android:gravity="center_horizontal">
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iconify_tv"
android:text="{fa-heart @color/color_iconify_heart_pink 48sp} {fa-star #FFFF00 44sp} {fa-gift #FF00FF 48sp}"
android:layout_marginTop="@dimen/activity_vertical_margin"
android:layout_margin="@dimen/activity_horizontal_margin"
android:gravity="center" />
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iconify_btn"
android:layout_below="@+id/iconify_tv"
android:layout_marginLeft="30dp"
android:text="{entypo-facebook #008B00 35sp}"/>
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/iconify_toggle"
android:layout_below="@+id/iconify_btn"
android:layout_marginLeft="30dp"
android:textOff="{fa-lock}"
android:textOn="{fa-unlock}"
android:textSize="35sp"
android:textColor="#677EFF"/>
效果图如下:
在代码中使用:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
/* 设置menu的图标为iconify中的图标*/
menu.findItem(R.id.action_settings).setIcon(
new IconDrawable(this, FontAwesomeIcons.fa_user)
.colorRes(R.color.color_iconify_music_quartz)
.actionBarSize());
return true;
}
效果图如下:
问题:在使用ImageView.setImageIcon(Drawable drawable)时,图标总是没有显示出来,不知道什么原因,还需要后面再看看