【问题标题】:android default keyboard layout stylingandroid默认键盘布局样式
【发布时间】:2014-12-08 14:48:47
【问题描述】:

我想更改默认(无论您设备上的)键盘,以便显示的颜色更好地反映我的应用程序的总体主题。例如白色背景,浅蓝色键,按下时变为深蓝色。

使用这个tutorial 我创建了一个自定义键盘,并且能够更改 keybackground.xml 以调整 KeyboardView 等上的键颜色。

<android.inputmethodservice.KeyboardView
    android:id="@+id/keyboardview"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:layout_centerHorizontal="true"
    android:focusable="true"
    android:focusableInTouchMode="true" 
    android:visibility="gone"
android:keyBackground="@drawable/keybackground"/>

我正在寻找的是将此样式应用于设备使用的默认键盘,但我还寻找了键盘布局 xml 的副本,因此我可以创建一个具有默认键布局的完全自定义的键盘。

我考虑过的一种可能的方法是替换以下行(在教程链接中解释)。

mKeyboardView.setKeyboard(new Keyboard(mHostActivity, layoutid));

使用另一种实例化/获取默认键盘的方法。

编辑

我只需要在我的应用程序中显示此键盘。

【问题讨论】:

  • 如果我理解正确,您想为设备上安装的系统键盘提供您自己的资源(它只是一个应用程序)。除非该键盘应用支持某种形式的扩展,否则没有标准方法。

标签: android layout keyboard android-softkeyboard soft-keyboard


【解决方案1】:

您无法更改任何已安装键盘的颜色(默认或非默认),尽管有些键盘可能允许您为它们创建主题作为一种扩展,但这将是用户可以与您的应用分开安装的东西。键盘应用程序是与您的应用程序分开的应用程序,Android 不允许您直接访问它们的布局。您当然可以创建自己的键盘应用程序,但在您的情况下这样做是没有意义的(因为您只是在自定义颜色以匹配您的应用程序之后)。

此外,如果每个应用程序都更改键盘颜色,那将是糟糕的用户体验。据推测,用户选择了适合他/她的视觉需求的键盘和主题,因此如果在应用程序之间更改它会很烦人(想象一下,如果您是色盲用户并且应用程序将键盘更改为您无法区分的颜色所以你再也看不到钥匙上的东西了!)。

【讨论】:

    【解决方案2】:

    您无法在 android 中执行您计划执行的操作,因为这将是一个巨大的安全漏洞。您的应用无法更改默认键盘。您可以做的是,制作新的自定义键盘样式并将其添加为用户的选择。用户必须转到设置-> 键盘并选择您的键盘。您将不得不实施InputMethodService. 但请注意,这不是一件容易的事。为此付出了很多努力。

    【讨论】:

    • 我已经为非 qwerty 应用程序创建了一个自定义键盘。我不想更改键盘或访问事件处理,只需将我的 keyBackground 应用到默认值。为了改变背景/关键颜色。
    【解决方案3】:

    如果您只想将键盘添加到您的应用程序中,请将键盘视图添加到您的布局中,并使用 visibility:gone。当用户单击编辑文本字段时,将事件消耗到默认键盘并显示您的键盘。跟踪按下的键并将它们附加到您需要的任何位置。当用户单击编辑文本字段时,不要忘记隐藏您的键盘。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-04-19
      • 1970-01-01
      • 1970-01-01
      • 2011-09-16
      • 1970-01-01
      • 2011-04-24
      • 1970-01-01
      • 2011-06-22
      相关资源
      最近更新 更多