如何在键盘上的xml中为功能键设置不同的背景?

Ayd*_*oid 6 xml keyboard android key function

我正在开发Android的键盘应用程序.我尝试为普通键和功能键设置不同的背景但它不起作用:

<selector xmlns:android="http://schemas.android.com/apk/res/android">

    <!-- Functional keys. -->

    <item android:state_single="true" android:state_pressed="true"
          android:drawable="@drawable/btn_keyboard_special" />
    <item android:state_single="true"
          android:drawable="@drawable/btn_keyboard_special" />

    <!-- Toggle keys. Use checkable/checked state.   -->

    <item android:state_checkable="true" android:state_checked="true" android:state_pressed="true"
          android:drawable="@drawable/btn_keyboard_key_dark_pressed_on" />
    <item android:state_checkable="true" android:state_pressed="true"
          android:drawable="@drawable/btn_keyboard_key_dark_pressed_off" />
    <item android:state_checkable="true" android:state_checked="true"
          android:drawable="@drawable/btn_keyboard_key_dark_normal_on" />
    <item android:state_checkable="true"
          android:drawable="@drawable/btn_keyboard_key_dark_normal_off" /> 

    <!-- Normal keys -->

    <item android:state_pressed="true"
          android:drawable="@drawable/glow" />
    <item android:drawable="@drawable/btn_keyboard_key_light_normal" />
</selector>
Run Code Online (Sandbox Code Playgroud)

gaa*_*a87 2

有一个名为 android:keyBackground 的 XML 属性。只需将此属性设置为可绘制对象就可以了。

将此属性添加到 input.xml 中的 KeyboardView:

<KeyboardView android:keyBackground="@drawable/buttonbgselector" .../>
Run Code Online (Sandbox Code Playgroud)

我假设这就是您用来为所有键分配背景颜色的方法。

仅对于功能键,创建一个适当的前景可绘制图像以覆盖整个键并将其分配到keyIcon键盘布局 xml 的 xml 中。

为了完美,请使用覆盖相同尺寸的背景图像,以防您不想更改 keyIcon