繁体   English   中英

Android自定义键盘更改按下背景颜色键

[英]Android Custom Keyboard Change Background color key pressed

我有一个问题,直到找不到解决方案! 我已经实现了一个带有几个键的自定义键盘。 每个键都有一个背景图像。 我想改变按键本身的背景颜色,如下面的原始键盘所示:

在此输入图像描述

我不想进行预览,我想在按下按键时更改按键本身的背景颜色。 这是我的文件:

keyboard.xml

<?xml version="1.0" encoding="UTF-8"?>
<android.inputmethodservice.KeyboardView
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_alignParentBottom="true"
android:keyPreviewOffset="10dp"
android:keyPreviewLayout ="@layout/preview"
android:keyTextColor="@color/colorAccent"
android:keyBackground="@drawable/keybackground"
android:background="#881f2023"
/>

keybackground.xml

<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
    android:drawable="@drawable/cleanbuttonnormal" />
<item
    android:state_pressed="true"
    android:drawable="@drawable/cleandeactivate" />
<item
    android:state_checkable="true"
    android:drawable="@drawable/cleanbuttonnormal" />
<item
    android:state_checkable="true"
    android:state_pressed="true"
    android:drawable="@drawable/cleandeactivate" />
<item
    android:state_checkable="true"
    android:state_checked="true"
    android:drawable="@drawable/cleanbuttonnormal" />
<item
    android:state_checkable="true"
    android:state_checked="true"
    android:state_pressed="true"
    android:drawable="@drawable/keybackground" />
</selector>

背景颜色将更改为我的drawable,但是当我按下该键时,它将不会更改为按下状态。 背景保持不变。 请你帮助我好吗?

在这里我的自定义键盘布局,启用预览以显示按钮被击中。

在此输入图像描述

带有8的黑色按钮应该变黄。 预览用于调试目的。

问题在于keybackground.xml的状态列表。 以下是州列表文档的摘录:

在每次状态更改期间,状态列表从上到下遍历,并且使用与当前状态匹配的第一个项目 - 选择不基于“最佳匹配”,而只是满足州的最低标准的第一个项目。

所以在你的情况下,每次都会选择<item android:drawable="@drawable/cleanbuttonnormal" /> 您应该更改项目的顺序,以便首先使用最具体的项目。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM