安卓键盘弹出字符问题

6
我正在为安卓开发自定义键盘。 我试图创建一个按钮,当按下时可以弹出笑脸。 据我了解,android:popupCharacters负责在键盘上显示弹出窗口,而android:popupKeyboard则负责显示弹出的键盘。 我的问题是,例如如果我把android:popupCharacters=":) :("放入代码中,每个字符都会单独显示在一个按钮上。 应该如何实现呢?
提前致谢。
4个回答

5

请仔细阅读文档:http://developer.android.com/reference/android/inputmethodservice/Keyboard.Key.html#attr_android:popupCharacters

android:popupCharacters

弹出键盘中显示的字符。

[...]

android:popupKeyboard

任何弹出键盘的XML键盘布局。

因此,popupcharacters意味着创建popupkeyboard的更简单的方法。但是Unicode出现了,帮助你避免创建XML和使用图像:http://unicodeemoticons.com/试试吧!(我曾经尝试过,很好地显示在2.2模拟器上,ZTE Blade和T-Mobile Pulse / Huwaei U8220)。

如果您不想使用这种解决方法,则另一种解决方案是进入Android SDK源代码,并尝试重新实现整个弹出键盘(或进行超级实现),以使其对您可用。 但无论如何,作为用户,如果我可以选择,我会更喜欢使用Unicode或图像,但这只是我的观点。


2
在xml目录下创建一个单独的xml布局文件,用于弹出窗口,具体如下:
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
    android:keyWidth="15%p"
    android:horizontalGap="0px"
    android:verticalGap="0px"
    android:keyHeight="@dimen/key_height"
    >

<Row android:rowEdgeFlags="top">
        <Key android:keyLabel=":-)" android:keyOutputText=":-) "
        <Key android:keyLabel=":-)" android:keyOutputText=":-( "
    </Row>
</Keyboard>

添加任意数量的行和/或键属性以获取更多表情符号,然后在您的键盘xml中使用此内容。

    <Key android:keyOutputText=":-)" android:keylabel=":-)" android:popupKeyboard="@xml/popup"/>

这将创建一个名为“:-)”的键,当您按下它时,将输出字符“:-)”;当您长按它时,将使用弹出式XML布局。

1
如果你正在制作自己的键盘,那么可以查看以下源代码,这将对你有很大帮助。 斯堪的纳维亚键盘 黑客键盘 Android表情符号键盘 另外,如果你想更改键盘主题,请查看以下链接。它会给你清晰的预览布局和所有内容的想法。 特别是如果你想了解关于表情符号的内容,那么Android表情符号键盘将非常有用。它在键盘和预览中使用表情符号。
希望这能帮到你。

@Fouad Elia Kada 你有检查过表情符号键盘代码吗?它对你有帮助吗? - baldguy

1
如果我正确理解了您的问题,您想要实现类似于Watsapp表情符号按钮的东西,那么您可以在您的按钮的onClick中使用PopupWindow,并向其中添加不同的表情符号。

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