我在Android上实现自定义键盘。我刚刚阅读了“developer.android.com”的文档,并看到了使用软键盘的示例。我只能 - 改变键盘背景,改变按钮的位置,将keyIcon而不是keyLabel设置为键。
但我仍然无法改变钥匙的背景和颜色。
请写一些XML或源代码示例代码。谢谢!
我改变背景的示例:
public class GBInput extends InputMethodService implements KeyboardView.OnKeyboardActionListener{
...
private GBKeyboardView mInputView;
@Override
public View onCreateInputView() {
mInputView = (GBKeyboardView) getLayoutInflater().inflate(R.layout.input, null);
mInputView.setOnKeyboardActionListener(this);
mInputView.setKeyboard(mQwertyKeyboard);
mInputView.setBackgroundResource(R.color.keyboard_background);
return mInputView;
}
...
}
我需要这样的东西:
所有按钮的图像 - 这是个坏主意,所以我想找到更好的问题。
答案 0 :(得分:22)
将此行代码添加到input.xml
android:keyBackground="@drawable/samplekeybackground"
所以你的input.xml应该看起来与此类似。
<com.example.keyboard.LatinKeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:keyPreviewLayout="@layout/input_key_preview"
android:keyBackground="@drawable/samplekeybackground"
/>
如果你已经有了一个可以使用的绘图,那么这里有一个示例关键背景drawable,它将产生类似于你的示例图像的结果。
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Non focused states -->
<item
android:state_focused="false"
android:state_selected="false"
android:state_pressed="false"
android:drawable="@drawable/normal" />
<!-- Pressed state -->
<item
android:state_pressed="true"
android:drawable="@drawable/pressed" /></selector>
如果您想要xml中的所有内容,您可以使用如下形状xml。 可拉伸/ normal.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="4dp" android:color="#000000" />
<solid android:color="#FFFFFF"/>
</shape>
和drawable / pressed.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke android:width="4dp" android:color="#A3D9F3" />
<solid android:color="#4ABCE8"/>
</shape>
答案 1 :(得分:4)
<com.example.keyboard.LatinKeyboardView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/keyboard"
android:layout_alignParentBottom="true"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:keyPreviewLayout="@layout/input_key_preview"
android:keyBackground="@drawable/samplekeybackground"
android:keyTextColor="#000000"
/>
只需将此行添加到keyboardView即可将文字颜色更改为黑色
机器人:keyTextColor = “#000000”