TheJadav

Use font-awesome for Icon in android

Use font-awesome for Icon in android

Here is steps to how to use font-awesome fonts in Android :

  • Download font-awesome from here
  • Create assets folder in app/src/main directory.
  • Now create fonts folder in assets folder
  • You can use it in two ways… either create Custom class which extends TextView or Manually get instance of TextView in Activity and then set font.
  • To choose font visit this site and check all icons.
  • Here describes both ways..  

Create Helper class :

public class CustomFontFamily
{
    static CustomFontFamily customFontFamily;
    HashMap fontMap=new HashMap<>();
    public static CustomFontFamily getInstance()
    {
        if(customFontFamily==null)
            customFontFamily=new CustomFontFamily();
        return customFontFamily;
    }
    public void addFont(String alias, String fontName){
        fontMap.put(alias,fontName);
    }
    public Typeface getFont(String alias)
    {
        String fontFilename = fontMap.get(alias);
        if (fontFilename == null) {
            Log.e("", "Font not available with name " + alias);
            return null;
        }
        else
        {
            Typeface typeface = Typeface.createFromAsset(CustomApplication.getContext().getAssets(), "fonts/" + fontFilename);
            return typeface;
        }
    }
}

Create Custom TextView :

public class IconTextView extends android.support.v7.widget.AppCompatTextView {

public IconTextView(Context context) { super(context); setFont(); }

public void setFont() { setTypeface(CustomFontFamily.getInstance().getFont(“fontawesome-webfont”)); }

public IconTextView(Context context, @Nullable AttributeSet attrs) {

super(context, attrs);

setFont();

}

public IconTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr); setFont();

}

}  

Use in XML: 
            android:layout_width=”38dp”
            android:layout_height=”38dp”
            android:layout_alignParentLeft=”true”
            android:layout_gravity=”right”
            android:layout_marginBottom=”5dp”
            android:layout_marginLeft=”5dp”
            android:layout_marginRight=”5dp”
            android:layout_marginTop=”5dp”
            android:layout_weight=”1″
            android:gravity=”center”
            android:text=””
            android:textAllCaps=”false”
            android:textColor=”@color/white”
            android:textSize=”24sp”
            android:visibility=”gone” />


 Or just create Normal TextView in XML:

            android:layout_width=”38dp”
            android:layout_height=”38dp”
            android:layout_alignParentLeft=”true”
            android:layout_gravity=”right”
            android:layout_marginBottom=”5dp”
            android:layout_marginLeft=”5dp”
            android:layout_marginRight=”5dp”
            android:layout_marginTop=”5dp”
            android:layout_weight=”1″
            android:gravity=”center”
            android:text=””
            android:textAllCaps=”false”
            android:textColor=”@color/white”
            android:textSize=”24sp”
            android:visibility=”gone” />

And use it in Activity :

Typeface fontAwesome = CustomFontFamily.getInstance().getFont("fontawesome-webfont");
TextView tvIcon = (TextView) orderView.findViewById(R.id.total_icon);
tvIcon.setTypeface(fontAwesome);

Dynamically set font by using its hax value : 

tvIcon.setText(new String(Character.toChars(Integer.parseInt("F00D", 16))));

Share this content:

Share:

More Posts

How does data persistence work in Android?

Data persistence in Android is the ability to save data to the device so that it can be accessed later, even if the app is closed or the device is restarted. There are several ways to achieve data persistence in Android

Fragments and Activities: Two Pillars of Android Development

Fragments and Activities are both important components of Android development. Fragments are a good choice for creating reusable and dynamic UIs, while Activities are a good choice for managing the lifecycle of an app’s UI and implementing core features.

Table of Contents

Send Us A Message