2017-09-18 113 views
4

我正尝试在android中为替代键创建自定义弹出式键盘。通过使用默认的键盘唯一定制,我可以做的是为弹出式键盘提供自定义布局。为替代键创建自定义弹出式键盘

我需要定制行为,以及(如一个在Gboard)比如,

(1)当按钮被长按,默认情况下它应该突出一个特定的密钥

(2)键可以通过移动手指被高亮显示,并且还选择(长按键和移动手指同时)

这些是我所引用的链接:

Building a custom android keyboard

Creating a SoftKeyboard with Multiple/Alternate characters per key

How do you disable the SoftKeyboard key preview window?

这是弹出式键盘Gboard enter image description here

任何建议/帮助将不胜感激。

谢谢。

+0

您是否找到任何解决方案? –

+0

@MateenChaudhry没有 – chathura

+0

你在键盘上实现了建议吗? –

回答

1
<?xml version="1.0" encoding="utf-8"?> 


    <Keyboard xmlns:android="http://schemas.android.com/apk/res/android" 
     android:keyWidth="10%p" 
     android:horizontalGap="0px" 
     android:verticalGap="0px" 
     android:keyHeight="@dimen/key_height"> 
     <Row android:keyHeight="2px"></Row> 
     <Row> 
      <Key 
       android:codes="49" 
       android:keyEdgeFlags="left" 
       android:keyLabel="1" /> 
      <Key 
       android:codes="50" 
       android:keyLabel="2" /> 
      <Key 
       android:codes="51" 
       android:keyLabel="3" /> 
      <Key 
       android:codes="52" 
       android:keyLabel="4" /> 
      <Key 
       android:codes="53" 
       android:keyLabel="5" /> 
      <Key 
       android:codes="54" 
       android:keyLabel="6" /> 
      <Key 
       android:codes="55" 
       android:keyLabel="7" /> 
      <Key 
       android:codes="56" 
       android:keyLabel="8" /> 
      <Key 
       android:codes="57" 
       android:keyLabel="9" /> 
      <Key 
       android:codes="48" 
       android:keyEdgeFlags="right" 
       android:keyLabel="0" /> 
     </Row> 

     <Row> 
      <Key 
       android:codes="113" 
       android:keyEdgeFlags="left" 
       android:keyLabel="q" /> 
      <Key 
       android:codes="119" 
       android:keyLabel="w" /> 

      <Key 
       android:codes="101" 
       android:keyLabel="e" /> 
      <Key 
       android:codes="114" 
       android:keyLabel="r" /> 
      <Key 
       android:codes="116" 
       android:keyLabel="t" /> 
      <Key 
       android:codes="121" 
       android:keyLabel="y" /> 
      <Key 
       android:codes="117" 
       android:keyLabel="u" /> 
      <Key 
       android:codes="105" 
       android:keyLabel="i" /> 

      <Key 
       android:codes="111" 
       android:keyLabel="o" /> 
      <Key 
       android:codes="112" 
       android:keyEdgeFlags="right" 
       android:keyLabel="p" /> 
     </Row> 


     <Row> 

      <Key 
       android:codes="97" android:keyLabel="a" android:horizontalGap="5%p" 
       android:keyEdgeFlags="left" android:popupKeyboard="@xml/keyboard_popup_template" 
       android:popupCharacters="áăä"/> 
      <Key 
       android:codes="115" 
       android:keyLabel="s" /> 
      <Key 
       android:codes="100" 
       android:keyLabel="d" /> 
      <Key 
       android:codes="102" 
       android:keyLabel="f" /> 
      <Key 
       android:codes="103" 
       android:keyLabel="g" /> 
      <Key 
       android:codes="104" 
       android:keyLabel="h" /> 
      <Key 
       android:codes="106" 
       android:keyLabel="j" /> 
      <Key 
       android:codes="107" 
       android:keyLabel="k" /> 
      <Key 
       android:codes="108" 
       android:keyEdgeFlags="right" 
       android:keyLabel="l" /> 


     </Row> 

     <Row> 
      <Key 
       android:codes="-1" android:keyIcon="@drawable/narrow2" 
       android:keyWidth="15%p" android:isModifier="true" 
       android:isSticky="true" android:keyEdgeFlags="left" /> 
      <Key 
       android:codes="122" 
       android:keyLabel="z" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="120" 
       android:keyLabel="x" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="99" 
       android:keyLabel="c" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="118" 
       android:keyLabel="v" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="98" 
       android:keyLabel="b" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="110" 
       android:keyLabel="n" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="109" 
       android:keyLabel="m" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="-5" 
       android:isRepeatable="true" 
       android:keyEdgeFlags="right" 
       android:keyIcon="@drawable/sym_keyboard_delete" 
       android:keyWidth="20%p" /> 
     </Row> 

     <Row 
      android:rowEdgeFlags="bottom" 
      android:verticalGap="5px"> 

      <Key 
       android:codes="-2" 
       android:keyEdgeFlags="left" 
       android:keyLabel="123" 
       android:keyWidth="15%p" /> 
      <Key 
       android:codes="64" 
       android:keyLabel="\@" 
       android:keyWidth="10%p" /> 

      <Key 
       android:codes="-101" 
       android:keyIcon="@drawable/sym_keyboard_language_switch" 
       android:keyWidth="10%p" /> 
      <Key 
       android:codes="32" 
       android:isRepeatable="true" 
       android:keyLabel="SPACE" 
       android:keyWidth="30%p" /> 

      <Key 
       android:codes="46" 
       android:keyLabel="." 
       android:keyWidth="10%p" /> 
      <Key 
       android:codes="44" 
       android:keyLabel="," 
       android:keyWidth="10%p" 
       android:popupCharacters=".,?!#@" 
       android:popupKeyboard="@xml/keyboard_popup_template" /> 
      <Key 
       android:codes="-4" 
       android:keyEdgeFlags="right" 
       android:keyLabel="DONE" 
       android:keyWidth="20%p" /> 
     </Row> 

     <Row android:keyHeight="2px"></Row> 

    </Keyboard> 

Please try it. 
+0

这不是他询问自定义弹出窗口的问题的答案 –