【问题标题】:How to change android keyboard key font?如何更改android键盘按键字体?
【发布时间】:2023-04-10 02:43:01
【问题描述】:


如何更改我在 android (Eclipse) 中编写的键盘按键的默认字体?
谢谢

【问题讨论】:

  • 您在寻找键盘主题吗?

标签: android fonts keyboard


【解决方案1】:

嗯,这是一个非常广泛的问题。我可以告诉你如何设置不同的字体;如何在键盘应用程序中使用它取决于您。

将字体(.ttf 或 .otf)放入您的资产文件夹,并使用以下代码(假设字体名为“myfont.ttf”和 id 为“key”的 TextView):

Typeface myFont = Typeface.createFromAsset(getAssets(), "myfont.ttf");
TextView key = (TextView)findViewById(R.id.key);
key.setTypeface(myFont);

提醒:不要忘记检查您正在使用的字体的许可证。大多数不允许在没有补偿的情况下进行再分配。您可以使用的一种免费许可字体是 Bitstream Vera Sans。

【讨论】:

  • 感谢您的回复,但我正在更改 SoftKeyboard 示例,并且我没有任何 TextView 来为其设置字体。我只有一个 InputMethodService、一个键盘、一个 Key 和一个 KeyboardView。
  • 有趣。是的,更多地研究它,我没有看到修改它的方法。但是,像 SwiftKey 这样的应用程序的键有不同的字体,所以这是可能的。很遗憾,我没有更好的答案。
  • 一种解决方案是为每个键放置一个图像,但这很耗时。无论如何,谢谢你,如果你发现了什么,请告诉我。
【解决方案2】:

我找到了答案:已实现 onDraw...

@Override
public void onDraw(Canvas canvas) {
    super.onDraw(canvas);
    try{
    onBufferDraw();
    }catch(Exception ex){

    }
    if (mBuffer!=null)
        canvas.drawBitmap(mBuffer, 0, 0, null);
}

【讨论】:

  • 有没有更好的办法?这种方法看起来工作量太大,并且涉及修改很多私有变量/方法,这些变量/方法很容易在未来的 Android 版本中中断。还不如通过“keyIcon”使用图像的路线,因为它似乎是更清洁的方式?
  • @paul_sns 我希望有更好的方法,但现在我已经习惯了。我没有看到新版本有太多变化。
  • 你能扩展答案吗?我完全不明白 onDraw 将如何帮助更改字体。
  • @Heidar 可以分享一个示例项目,您可以在其中使用此方法解决问题
【解决方案3】:

一种解决方案是使用keboardView.java 而不是android.inputmethodservice.KeyboardView。

您还需要将paint.setTypeface(Typeface.DEFAULT_BOLD) 更改为paint.setTypeface(my font),并且必须将attrs.xml 添加到您的项目中。

【讨论】:

  • 如何添加 attrs.xml
【解决方案4】:

如果您正在考虑使用外部 .ttf 字体样式更改 android 自定义键盘键字体样式的字体样式,那么您可以在链接中查看我的答案 answer to change the font style of key label of android custom keyboard and also to change the font style throughout the android application

此答案已由我亲自验证,因此您可以信任并检查。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-08-22
    • 2017-01-05
    • 2013-03-25
    • 2012-07-12
    • 2019-05-26
    • 1970-01-01
    • 2018-03-07
    相关资源
    最近更新 更多