
FontAwesome offers more than 605 fonts icons in a single collection. It has infinite scalability which means every icon looks great and awesome at any size and color you define. This library allows you to include vector icons everywhere in your project.
Already available fonts
Add the iconics-core dependency to your android module build.gradle.
compile "com.mikepenz:iconics-core:2.8.1@aar"
compile "com.android.support:appcompat-v7:${supportLibVersion}"
Add desired fonts dependency to your android module build.gradle.
compile 'com.mikepenz:google-material-typeface:2.2.0.3.original@aar' compile 'com.mikepenz:material-design-iconic-typeface:2.2.0.2@aar' compile 'com.mikepenz:fontawesome-typeface:4.6.0.3@aar' compile 'com.mikepenz:octicons-typeface:3.2.0.2@aar' compile 'com.mikepenz:meteocons-typeface:1.1.0.2@aar' compile 'com.mikepenz:community-material-typeface:1.5.54.2@aar' compile 'com.mikepenz:weather-icons-typeface:2.0.10.2@aar' compile 'com.mikepenz:typeicons-typeface:2.0.7.2@aar' compile 'com.mikepenz:entypo-typeface:1.0.0.2@aar' compile 'com.mikepenz:devicon-typeface:2.0.0.2@aar' compile 'com.mikepenz:foundation-icons-typeface:3.0.0.2@aar' compile 'com.mikepenz:ionicons-typeface:2.0.1.2@aar'
Define IconicsLayoutInflater to enable automatic xml icons detection (optional). Set the IconicsLayoutInflater as new LayoutInflaterFactory. This will enable automatic icon detection for TextViews, Buttons, and allow you to set icons on ImageView's via xml. This does not work on FAB's please use the Context-Injection instead.
@Override
protected void onCreate(Bundle savedInstanceState) {
LayoutInflaterCompat.setFactory(getLayoutInflater(), new IconicsLayoutInflater(getDelegate()));
//...
super.onCreate(savedInstanceState);
//...
}
Or inject into Context. Wrap the Activity context. This will enable the same features as in previous advice, but is not compatible with other libs wrapping the baseContext.
@Override
protected void attachBaseContext(Context newBase) {
super.attachBaseContext(IconicsContextWrapper.wrap(newBase));
}
Use as drawable
new IconicsDrawable(this)
.icon(FontAwesome.Icon.faw_android)
.color(Color.RED)
.sizeDp(24)
//.actionBarSize()
Use as ImageView (only available if you set IconicsLayoutInflater or inject the context)
<ImageView
android:layout_width="48dp"
android:layout_height="48dp"
app:ico_color="@color/red"
app:ico_icon="faw-android"
app:ico_size="48dp" />
//other possible attributes
//app:ico_background_color="@android:color/transparent"
//app:ico_color="@color/md_red_100"
//app:ico_contour_color="@android:color/transparent"
//app:ico_contour_width="0dp"
//app:ico_corner_radius="0dp"
//app:ico_icon="gmd-plus-circle"
//app:ico_offset_x="0dp"
//app:ico_offset_y="0dp"
//app:ico_padding="0dp"
//app:ico_size="48dp"
Use as TextView (only available if you set IconicsLayoutInflater or inject the context)
<TextView
android:text="{faw-android} Android"
android:textColor="@android:color/black"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:textSize="16sp"/>
Use as custom views (if you do not set IconicsLayoutInflater or inject the context)
Use as IconicsImageView
<com.mikepenz.iconics.view.IconicsImageView
android:layout_width="72dp"
android:layout_height="72dp"
app:iiv_color="@android:color/holo_red_dark"
app:iiv_icon="faw-android" />
Use as IconicsTextView
<com.mikepenz.iconics.view.IconicsTextView
android:text="{faw-android}"
android:textColor="@android:color/black"
android:layout_width="wrap_content"
android:layout_height="56dp"
android:textSize="16sp"/>
Use as IconicsButton
<com.mikepenz.iconics.view.IconicsButton
android:text="{faw-android} Android"
android:layout_width="120dp"
android:layout_height="60dp"/>