Android键盘按键覆盖

Android键盘按键覆盖,android,overlay,Android,Overlay,我很好奇如何在下图所示的按钮或按键上实现以下覆盖?我正在实施自定义键盘…同样需要这个东西 编辑: 因此,我使用Gridview实现了一个键盘,如下所示 现在,我尝试在默认键盘中添加一些覆盖(点击) 谢谢:)您需要的是“关键预览” 我假设您正在使用KeyboardView创建自定义键盘。您可以通过如下方式调用键预览来启用它:mKeyboardView.setPreviewEnabled(true) 编辑: 我认为这将有助于您的实现,并更详细地解释了我所尝试的 首先为键盘创建布局,通常仅包含键盘

我很好奇如何在下图所示的按钮或按键上实现以下覆盖?我正在实施自定义键盘…同样需要这个东西

编辑:

因此,我使用Gridview实现了一个键盘,如下所示

现在,我尝试在默认键盘中添加一些覆盖(点击)


谢谢:)

您需要的是“关键预览” 我假设您正在使用
KeyboardView
创建自定义键盘。您可以通过如下方式调用键预览来启用它:
mKeyboardView.setPreviewEnabled(true)

编辑:

我认为这将有助于您的实现,并更详细地解释了我所尝试的

首先为键盘创建布局,通常仅包含键盘视图:

<?xml version="1.0" encoding="UTF-8"?>
    <android.inputmethodservice.KeyboardView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/keyboard"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentBottom="true"
    android:keyPreviewLayout ="@layout/preview" />

祝你好运。

使用
弹出窗口
作为关键预览功能(实际上我在上一个IME项目中也做了同样的事情)

我建议您使用
KeyboardView
的子类,因为它为您提供了很多功能,可以让事情变得轻松。每次按下
键时,
onPressed
会被回调,然后您就知道按下了哪个键。并深入了解
键盘视图
的源代码,您可以在课堂上学习如何放置
弹出窗口


只要一点点努力。但是如果你的类不是从
KeyboardView
(比如使用
GridView
)派生的,你需要花更多的时间来理解它。无论如何,源代码是一个很好的开始。

我没有使用KeyboardView。我使用视图创建了自己的键盘。但是为了创造一个很棒的按键体验,我想用普通的按键视图实现这样的叠加排序。谢谢,我不明白你使用视图的意思!您可以添加更多关于如何创建自定义keybord的详细信息吗?通常,您必须创建一个包含行和键的xml键盘,一个用于键盘的xml布局,另一个用于preview.MAB,添加了更多详细信息。听起来是个好主意,PopupWindow,我将尝试这个。谢谢看:可爱的问题,我想要一些新的东西
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:gravity="center"
    android:background="#ffff00"   
    android:textStyle="bold"
    android:textSize="30sp">    
</TextView>
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="10%p"
    android:horizontalGap="0px"
    android:verticalGap="0px"  
    android:keyHeight="60dp">
    <Row>
        <Key android:codes="49" android:keyLabel="1" android:keyEdgeFlags="left"/>
        <Key android:codes="50" android:keyLabel="2"/>
        <Key android:codes="51" android:keyLabel="3"/>
    </Row>
    <Row>
        <Key android:codes="52" android:keyLabel="4"/>
        <Key android:codes="53" android:keyLabel="5"/>
        <Key android:codes="54" android:keyLabel="6"/>
   </Row>
   <Row>
        <Key android:codes="55" android:keyLabel="7"/>
        <Key android:codes="56" android:keyLabel="8"/>
        <Key android:codes="57" android:keyLabel="9"/>
   </Row>
</Keyboard>
kv = (KeyboardView)getLayoutInflater().inflate(R.layout.keyboard, null);
keyboard = new Keyboard(this, R.xml.numeric);
kv.setKeyboard(keyboard);
kv.setOnKeyboardActionListener(this);