Android应用程序和ActionBar中的自定义字体

用户名

我整个下午都在为自己的Android应用中实现自定义字体而烦恼。首先,我在导航抽屉中使用自定义字体时遇到了麻烦。这似乎不起作用。因此,我决定尝试使用Actionbar标题,但是遇到了同样的问题。

我找到了该网站http://www.tristanwaddington.com/2013/03/styling-the-android-action-bar-with-a-custom-font/,并决定尝试一下。

我使用以下代码创建了一个自定义Java文件:

package vimen.vimenlogin;

import android.content.Context;
import android.graphics.Paint;
import android.graphics.Typeface;
import android.text.TextPaint;
import android.text.style.MetricAffectingSpan;
import android.util.LruCache;

public class TypefaceSpan extends MetricAffectingSpan {
    /** An <code>LruCache</code> for previously loaded typefaces. */
    private static LruCache<String, Typeface> sTypefaceCache =
    new LruCache<String, Typeface>(12);

    private Typeface mTypeface;

    /**
     * Load the {@link Typeface} and apply to a {@link}.
     */
    public TypefaceSpan(Context context, String typefaceName) {
        mTypeface = sTypefaceCache.get(typefaceName);

        if (mTypeface == null) {
            mTypeface = Typeface.createFromAsset(context.getApplicationContext()
                .getAssets(), String.format("fonts/%s", typefaceName));

            // Cache the loaded Typeface
            sTypefaceCache.put(typefaceName, mTypeface);
        }
    }

    @Override
    public void updateMeasureState(TextPaint p) {
        p.setTypeface(mTypeface);

        // Note: This flag is required for proper typeface rendering
        p.setFlags(p.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
    }

    @Override
    public void updateDrawState(TextPaint tp) {
        tp.setTypeface(mTypeface);

        // Note: This flag is required for proper typeface rendering
        tp.setFlags(tp.getFlags() | Paint.SUBPIXEL_TEXT_FLAG);
    }
}

除此之外,我将方法放入main.java文件中:

public void restoreActionBar()
{
    actionBar = getSupportActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_STANDARD);
    actionBar.setDisplayShowTitleEnabled(true);

    SpannableString s = new SpannableString("testing");
    s.setSpan(new TypefaceSpan(this, "fonts/Raleway-Bold.ttf"), 0, s.length(),
            Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

    // Update the action bar title with the TypefaceSpan instance
    actionBar.setTitle(s);
    //actionBar.setTitle(mTitle);
}

但是,我遇到了此错误Caused by: java.lang.RuntimeException: native typeface cannot be made以及崩溃的应用程序。

常用软件

TypefaceSpan不采用字体路径。它仅适用于内置字体系列。从代码片段的当前位置判断它们是您使用的TypefaceSpan是内置代码片段还是内置的代码是不可能的TypefaceSpan

(专家提示:请为您使用与相比不同的类名TypefaceSpan

该错误消息通常表示Android找不到字体文件或由于某种原因无法解释它。给定您的代码,您的字体文件将需要为:

assets/fonts/fonts/Raleway-Bold.ttf

在您的项目,因为你fonts/无论是在你TypefaceSpan和你的使用的是TypefaceSpan如果字体文件不存在,请移动它或修正您的代码以引用其实际位置。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android应用程序和ActionBar中的自定义字体

来自分类Dev

Android应用程序的自定义字体

来自分类常见问题

如何在Android中为整个应用程序设置自定义字体?

来自分类Dev

使用的特定自定义字体在android应用程序中不起作用

来自分类Dev

在Android Studio中为科学计算器应用程序使用自定义字体

来自分类Dev

Android应用程序中SeekBar的自定义形状

来自分类Dev

向laravel应用程序添加自定义字体

来自分类Dev

如何在我的应用程序中嵌入自定义字体

来自分类Dev

混合移动应用程序(电话间隔)UI中的自定义字体

来自分类Dev

如何在棒棒糖中为整个应用程序设置自定义字体

来自分类Dev

如何使用FlutterFragment和自定义入口点将Flutter布局嵌入Android应用程序中?

来自分类Dev

为什么我的自定义字体没有被应用到我的所有应用程序中?

来自分类Dev

如何将应用程序字体更改为自定义字体

来自分类Dev

如何定义自定义应用程序主题以为Android中的布局指定默认背景?

来自分类Dev

Grails自定义环境和Web应用程序

来自分类Dev

如何在Android应用程序中指定和添加自定义打印机?

来自分类Dev

自定义Android电话应用程序

来自分类Dev

Android应用程序,动态添加自定义组件

来自分类Dev

自定义相机应用程序崩溃-Android

来自分类Dev

自定义键盘Android获取当前的应用程序

来自分类Dev

对应用程序中的所有文本使用自定义字体,不适用于Lollipop

来自分类Dev

对应用程序中的所有文本使用自定义字体,不适用于Lollipop

来自分类Dev

NSUserDefaults不在iOS 8中的应用程序和自定义键盘之间存储值

来自分类Dev

iOS应用中的自定义字体

来自分类Dev

iOS应用中的自定义字体

来自分类Dev

在应用程序中自定义UITableview部分

来自分类Dev

可可中的自定义主应用程序循环

来自分类Dev

Rails应用程序中的自定义URL

来自分类Dev

Windows Store应用程序中的自定义MessageDialougeBox

Related 相关文章

  1. 1

    Android应用程序和ActionBar中的自定义字体

  2. 2

    Android应用程序的自定义字体

  3. 3

    如何在Android中为整个应用程序设置自定义字体?

  4. 4

    使用的特定自定义字体在android应用程序中不起作用

  5. 5

    在Android Studio中为科学计算器应用程序使用自定义字体

  6. 6

    Android应用程序中SeekBar的自定义形状

  7. 7

    向laravel应用程序添加自定义字体

  8. 8

    如何在我的应用程序中嵌入自定义字体

  9. 9

    混合移动应用程序(电话间隔)UI中的自定义字体

  10. 10

    如何在棒棒糖中为整个应用程序设置自定义字体

  11. 11

    如何使用FlutterFragment和自定义入口点将Flutter布局嵌入Android应用程序中?

  12. 12

    为什么我的自定义字体没有被应用到我的所有应用程序中?

  13. 13

    如何将应用程序字体更改为自定义字体

  14. 14

    如何定义自定义应用程序主题以为Android中的布局指定默认背景?

  15. 15

    Grails自定义环境和Web应用程序

  16. 16

    如何在Android应用程序中指定和添加自定义打印机?

  17. 17

    自定义Android电话应用程序

  18. 18

    Android应用程序,动态添加自定义组件

  19. 19

    自定义相机应用程序崩溃-Android

  20. 20

    自定义键盘Android获取当前的应用程序

  21. 21

    对应用程序中的所有文本使用自定义字体,不适用于Lollipop

  22. 22

    对应用程序中的所有文本使用自定义字体,不适用于Lollipop

  23. 23

    NSUserDefaults不在iOS 8中的应用程序和自定义键盘之间存储值

  24. 24

    iOS应用中的自定义字体

  25. 25

    iOS应用中的自定义字体

  26. 26

    在应用程序中自定义UITableview部分

  27. 27

    可可中的自定义主应用程序循环

  28. 28

    Rails应用程序中的自定义URL

  29. 29

    Windows Store应用程序中的自定义MessageDialougeBox

热门标签

归档