Typeface.BOLD& Typeface.ITALIC无法正常使用自定义字体

时间:2015-10-14 13:05:23

标签: android android-typeface

我制作了一个文本编辑器,有两个按钮,一个用于粗体,另一个用于斜体。我写了以下代码......

private void setBoldListener() {
    btnBold.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (editText.getTypeface() != null) {
                if (editText.getTypeface().isBold()) {
                    if (editText.getTypeface().isItalic()) {
                        editText.setTypeface(editText.getTypeface(), Typeface.ITALIC);
                    } else {
                        editText.setTypeface(editText.getTypeface(), Typeface.NORMAL);
                    }
                } else {
                    if (editText.getTypeface().isItalic()) {
                        editText.setTypeface(editText.getTypeface(), Typeface.BOLD_ITALIC);
                    } else {
                        editText.setTypeface(editText.getTypeface(), Typeface.BOLD);
                    }
                }
            }
        }
    });
}

private void setItalicListener() {
    btnItalic.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (editText.getTypeface() != null) {
                if (editText.getTypeface().isItalic()) {
                    if (editText.getTypeface().isBold()) {
                        editText.setTypeface(editText.getTypeface(), Typeface.BOLD);
                    } else {
                        editText.setTypeface(editText.getTypeface(), Typeface.NORMAL);
                    }
                } else {
                    if (editText.getTypeface().isBold()) {
                        editText.setTypeface(editText.getTypeface(), Typeface.BOLD_ITALIC);
                    } else {
                        editText.setTypeface(editText.getTypeface(), Typeface.ITALIC);
                    }
                }
            }
        }
    });
}

当我的EditText具有默认字体时,代码工作正常,我的意思是默认字体。但是,如果我使用

更改字体(字体)
editText.setTypeface(Typeface.createFromAsset(getAssets(), "fonts/Comic Sans MS.ttf"));

代码无法正常运行。我尝试了很多解决方案,但每次都失败了。请告诉我我错过了什么?

0 个答案:

没有答案