很棒的ttf字体文件无法在android字体系列中使用

时间:2019-03-29 09:34:53

标签: android android-fonts font-awesome-5

我正在使用android应用程序,我下载了真棒的ttf文件并添加到了android studio项目中。它不起作用,但是如果我尝试使用icoomon可以正常工作。谁能帮我。

代码:

<TextView
            android:text="aws"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textView2" android:layout_marginBottom="8dp"
            app:layout_constraintBottom_toTopOf="@+id/button" android:layout_marginTop="8dp"
            app:layout_constraintTop_toTopOf="parent" app:layout_constraintStart_toStartOf="parent"
            android:layout_marginStart="8dp" app:layout_constraintEnd_toEndOf="parent" android:layout_marginEnd="8dp"
            app:fontFamily="@font/fa_brands_400"/>

1 个答案:

答案 0 :(得分:1)

首先,请确保将.ttf下载的文件放在Asset文件夹中。

然后创建一个名为FontAwesome的类,该类像这样扩展TextView

  public class FontAwesome extends TextView {


public FontAwesome(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
    init();
}

public FontAwesome(Context context, AttributeSet attrs) {
    super(context, attrs);
    init();
}

public FontAwesome(Context context) {
    super(context);
    init();
}

private void init() {

//Font name should not contain "/".
    Typeface tf = Typeface.createFromAsset(getContext().getAssets(),
            "fontawesome.ttf");
    setTypeface(tf);
}

}

最后,您按照以下步骤创建TextView

<PACKAGE_NAME.Fontawesome
android:id="@+id/userLogin"
android:text="&#xf007;  Login Now"
android:clickable="true"
android:onClick="login"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

希望对您有帮助。