表情符号软键盘类似于android中的Whatsapp



我是interested,在Android中创建类似Whatsapp的表情符号键盘。我成功创建了Emoji keyboard

现在,我想在自定义键盘(InputMethod(中添加两个滚动条。

第一个keyboard上方的horizontal scroll(如kitkat中(,用于选择类别like(Nature,People,Place,Symbols(。

其次我想添加表情符号的垂直网格视图。因此,无需反复单击categories即可获得完整列表。

到目前为止我尝试了什么

我已经创建了类似的input.xml

<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_gravity="bottom" >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="vertical" >
        <com.zeuxislo.emojikeyboard.EmojiKeyboardView
            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_gravity="bottom"
            android:keyBackground="@drawable/samplekeybackground" >
        </com.zeuxislo.emojikeyboard.EmojiKeyboardView>
        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="Wao what a keyBoard"
            android:textSize="24sp" />
    </LinearLayout>
</ScrollView>

并且在SoftKeyboard.java

public View onCreateInputView() 
    {
        LayoutInflater inflater = (LayoutInflater)this.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
        testInput = inflater.inflate(R.layout.test_input, null);
        mInputView = (KeyboardView) testInput.findViewById(R.id.keyboard);
        this.mInputView = (KeyboardView) this.getLayoutInflater().inflate(R.layout.input, null);
        //this.mInputView = (KeyboardView) this.getLayoutInflater().inflate(R.layout.input, null);
        this.mInputView.setOnKeyboardActionListener(this);
        this.mInputView.setKeyboard(this.mQwertyKeyboard);
        return this.mInputView;
    }

还尝试将TextView放在布局的上方和下方。但它没有显示出来。我该怎么做?

我还尝试添加一个类似HorizontalScrollView

<Keyboard  android:keyWidth="10.000002%p" android:keyHeight="@dimen/key_height" android:horizontalGap="0.0px" android:verticalGap="0.0px"
  xmlns:android="http://schemas.android.com/apk/res/android">
  <HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="wrap_content">
     <Row  android:rowEdgeFlags="bottom">
        <Key android:keyWidth="14.999998%p" android:codes="-1009" android:keyEdgeFlags="left" android:keyIcon="@drawable/sym_keyboard_done" />
        <Key android:keyWidth="10.000002%p" android:codes="-1010" android:keyLabel="ABC" />
        <Key android:keyWidth="10.000002%p" android:codes="-1011" android:keyLabel="123" />
        <Key android:keyWidth="10.000002%p" android:codes="-1012" android:keyIcon="@drawable/e415" />
        <Key android:keyWidth="10.000002%p" android:codes="-1013" android:keyIcon="@drawable/e04a" />
        <Key android:keyWidth="10.000002%p" android:codes="-1014" android:keyIcon="@drawable/e033" />
        <Key android:keyWidth="10.000002%p" android:codes="-1015" android:keyIcon="@drawable/e01d" />
        <Key android:keyWidth="10.000002%p" android:codes="-1016" android:keyIcon="@drawable/e214" />
        <Key android:keyWidth="14.999998%p" android:codes="-1017" android:keyEdgeFlags="right" android:keyIcon="@drawable/sym_keyboard_return" />
         <Key android:keyWidth="14.999998%p" android:codes="-1021" android:keyEdgeFlags="left" android:keyIcon="@drawable/sym_keyboard_done" />
        <Key android:keyWidth="10.000002%p" android:codes="-1022" android:keyLabel="ABC" />
        <Key android:keyWidth="10.000002%p" android:codes="-1023" android:keyLabel="123" />
        <Key android:keyWidth="10.000002%p" android:codes="-1024" android:keyIcon="@drawable/e415" />
        <Key android:keyWidth="10.000002%p" android:codes="-1025" android:keyIcon="@drawable/e04a" />
    </Row>
  </HorizontalScrollView>
</Keyboard >

本质上,您为表情符号键盘所做的一切都是创建键盘大小的视图,然后用与表情符号对应的图像文件填充该视图。每个图像就像一个按钮,并将适当的表情符号传递给inputConnection。

我发现表情符号键盘的最佳实现是滑动表情键盘。我能够分叉这个项目并进行清理,并对其进行了相当大的改进。你可以看看我的表情板,试着理解我使用的方法。

2022更新:

这是我找到的最好的库:GitHub。它运行完美,外观很棒,你甚至可以选择你想要的表情符号风格(包括iOS、谷歌、推特(。用法也很简单,解释得很好。

相关内容

  • 没有找到相关文章

最新更新