如何使用软键盘在输入编辑文本字段区域中键入自定义字体? [关闭]

Posted

技术标签:

【中文标题】如何使用软键盘在输入编辑文本字段区域中键入自定义字体? [关闭]【英文标题】:how can i type custom font in input edittext field area using softkeyboard? [closed] 【发布时间】:2015-09-18 15:59:24 【问题描述】:

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

我想看起来像这样:

【问题讨论】:

我刚刚上传了 iphone 3rd 方键盘示例。 我想做这个键盘,支持输入连接字段中的按键文本字体样式。 SO: Change font for EditText in Android? 这能回答你的问题吗? Change font for EditText in Android? 【参考方案1】:

我以roboto字体为例

您可以在asset文件夹中创建字体(即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_
      android:layout_
      android:paddingBottom="2dip" />

【讨论】:

我希望使用我的软键盘根据我在消息编辑文本字段中的字体更改输入文本的字体。请注意,编辑文本字段区域不是我自己的应用程序部分。

以上是关于如何使用软键盘在输入编辑文本字段区域中键入自定义字体? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

启动自定义软键盘后文本字段不显示光标

单击“操作完成”键盘时看不到光标

了解android文本输入和软键盘

重新加载可扩展列表时如何重新关注编辑文本...?

当软键盘出现在phonegap中时隐藏输入字段

Android中WebView中的文本字段被键盘隐藏