我正在尝试编写一个简单的键盘,并希望实现上述4个键。在我的keyboard.xml
文件中,我一直在定义这样的布局 -
<Keyboard xmlns:android="http://schemas.android.com/apk/res/android"
android:keyWidth="10%p"
android:horizontalGap="0px"
android:verticalGap="0px"
android:keyHeight="40dp"
>
<Row>
<Key android:codes="9" android:keyLabel="↹" android:keyEdgeFlags="left"/>
<Key android:codes="126,96" android:keyLabel="~`"/>
<Key android:codes="95,45" android:keyLabel="_-"/>
<Key android:codes="43,61" android:keyLabel="+="/>
<Key android:codes="123,91" android:keyLabel="{["/>
...
我一直在android:codes
内使用ASCII码。但我不知道如何处理 Ctrl , Alt ,删除和 Shift 键。我使用-5
作为 Backspace 找到here。但不确定如何实现删除键。
KEYCODE_ALT
和KEYCODE_SHIFT
是否与 Alt 和 Shift 相同?而且我几乎坚持使用 Ctrl 键,因为我在doc中找不到任何对它的引用。我错过了什么愚蠢的事情?
编辑:如果有人可以提供一些关于箭头键的指示,那也会有所帮助。
答案 0 :(得分:2)
我找到了一个代码片段,其中显示了可以映射的所有键。
<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"/>
<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:keyLabel="0" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="113" android:keyLabel="q" android:keyEdgeFlags="left"/>
<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:keyLabel="p" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="97" android:keyLabel="a" android:keyEdgeFlags="left"/>
<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:keyLabel="l"/>
<Key android:codes="35,64" android:keyLabel="\# \@" android:keyEdgeFlags="right"/>
</Row>
<Row>
<Key android:codes="-1" android:keyLabel="CAPS" android:keyEdgeFlags="left"/>
<Key android:codes="122" android:keyLabel="z"/>
<Key android:codes="120" android:keyLabel="x"/>
<Key android:codes="99" android:keyLabel="c"/>
<Key android:codes="118" android:keyLabel="v"/>
<Key android:codes="98" android:keyLabel="b"/>
<Key android:codes="110" android:keyLabel="n"/>
<Key android:codes="109" android:keyLabel="m"/>
<Key android:codes="46" android:keyLabel="."/>
<Key android:codes="63,33,58" android:keyLabel="\? ! :" android:keyEdgeFlags="right"/>
</Row>
<Row android:rowEdgeFlags="bottom">
<Key android:codes="44" android:keyLabel="," android:keyWidth="10%p" android:keyEdgeFlags="left"/>
<Key android:codes="47" android:keyLabel="/" android:keyWidth="10%p" />
<Key android:codes="32" android:keyLabel="SPACE" android:keyWidth="40%p"android:isRepeatable="true"/>
<Key android:codes="-5" android:keyLabel="DEL" android:keyWidth="20%p" android:isRepeatable="true"/>
<Key android:codes="-4" android:keyLabel="DONE" android:keyWidth="20%p" android:keyEdgeFlags="right"/>
</Row>
正如您所看到的,ctrl或alt没有ASCII代码。我相信第44行的CAPS(-1)用作移位,第59行的DEL(-5)用作退格。
修改强>
为了响应您的编辑,箭头键没有ASCII代码。完整列表可在http://www.asciitable.com/
上找到修改2
查看链接后,我发现:
-1 = shift
-2 = changes keyboard mode (to show letters or symbols)
-3 = your link says KEYCODE_CANCEL. I am not sure what this is for.
-4 = Remove the keyboard from the screen (to stop typing)
-5 = Backspace
-6 = Alt
编辑3
在做了一些研究后,可以实现箭头键,但我不知道如何。我建议在网站上提出另一个问题,特别是关于箭头键的问题。