如何使用软键盘在输入edittext字段区域中键入自定义字体?

时间:2015-07-01 13:08:23

标签: android android-softkeyboard android-input-method

我正在开发Android软键盘。因此,我在使用该键盘编写时,尝试使用EditText字段中的默认android字体以外的字体。 请注意,我不希望更改Keys的字体,我希望根据我的字体更改输入文本的字体。

我想看起来像这样:

enter image description here

2 个答案:

答案 0 :(得分:1)

我认为唯一的方法是为按钮文本设置Normat字体。 并使用不同的字体在EditText中写入!

更改EditText的字体:Change font for EditText in Android?

答案 1 :(得分:1)

我正在以roboto字体为例

您可以在资产文件夹中创建字体(即asset / fonts / roboto.ttf)。

然后,为EditText创建一个合适的类:

// RobotoFont class
package com.my.font;
public class EditTextRobotoFont  extends EditText {
    public EditTextRobotoFont(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
    }
    public EditTextRobotoFont(Context context, AttributeSet attrs) {
        super(context, attrs);
    }
    public EditTextRobotoFont(Context context) {
        super(context);
    }
    public void setTypeface(Typeface tf, int style) {
        if (style == Typeface.BOLD) {
            super.setTypeface(Typeface.createFromAsset(getContext().getAssets(),    "fonts/Roboto-Bold.ttf"));
        }
        else if(style == Typeface.ITALIC)
        {
            super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Italic.ttf"));
        }
        else
        {
            super.setTypeface(Typeface.createFromAsset(getContext().getAssets(), "fonts/Roboto-Regular.ttf"));
        }
    }
}

最后,更新您的布局:

//main.xml
//replace EditText with package name com.my.font.EditTextRobotoFont
<com.my.font.EditTextRobotoFont
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:paddingBottom="2dip" />