安卓默认键盘布局样式设计

5

我希望能够更改默认键盘(设备上的任何内容),以便显示的颜色更好地反映我的应用的主题。例如,白色背景,浅蓝色按键,在按下时变为深蓝色。

使用这个教程,我创建了一个自定义键盘,并且可以通过更改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"/>

我希望你能翻译以下内容,这是关于it技术的:

我想要做的是将这种样式应用到设备默认使用的键盘上,如果无法实现,则我还将寻找键盘布局xml的副本,以便我可以创建具有默认键布局的完全自定义键盘。

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

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

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

编辑

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


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

3
您无法更改任何已安装键盘(默认或非默认)的颜色,虽然某些键盘可能允许您为其创建主题以作为扩展程序,但这将是用户可从您的应用程序中单独安装的内容。键盘应用程序与您的应用程序是分开的,并且Android不会直接提供它们的布局。当然,您可以创建自己的键盘应用程序,但在您的情况下这样做没有意义(因为您只想自定义颜色以匹配您的应用程序)。
此外,如果每个应用程序都更改键盘颜色,那将是糟糕的用户体验。假设用户选择了适合他/她视觉需求的键盘和主题,那么如果在应用程序之间更改它将会很烦人(想象一下,如果您是一个色盲用户,并且一个应用程序将键盘更改为您无法区分的颜色,那么您将无法看到按键上的内容)。

0
你不能在Android中做你计划要做的事情,因为那将是一个巨大的安全漏洞。你的应用程序不能更改默认键盘。你可以做的是,制作一个新的自定义键盘样式,并将其添加为用户的选择之一。用户必须进入设置->键盘并选择你的键盘。你将不得不实现InputMethodService。但要注意,这不是一项容易的任务。需要付出很多努力。

我已经创建了一个自定义键盘,用于非qwerty应用程序。我不想更改键盘或访问事件处理,只需将我的keyBackground应用于默认设置,以更改背景/键颜色。 - Michael Kent

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接