我最近遵循了here教程,其目标是制作自定义键盘。但是,我想变得更有创意。我希望有一个画布视图而不是键,用户可以在其中绘制图像并发送图像或实现某种效果的图像。我认为这就像用典型的Android视图替换布局中的键一样简单,但事实证明这是不可能的。
具体地说,在keyboard.xml
文件中,我放入了一个线性布局,并在其中放置了表面视图。在定义键的文件(key_layout.xml)中,我将其留为空白。
然后我提供了扩展键盘的服务:
public class KiwiService extends InputMethodService implements
KeyboardView.OnKeyboardActionListener {
private KeyboardView keyboardView;
private Keyboard keyboard;
@Override
public View onCreateInputView() {
keyboardView = (KeyboardView) getLayoutInflater().inflate(R.layout.keyboard, null);
keyboard = new Keyboard(this, R.xml.key_layout);
keyboardView.setKeyboard(keyboard);
keyboardView.setOnKeyboardActionListener(this);
return keyboardView;
}
}
当我尝试使用手机上的键盘时,没有出现表面视图,此后不久该应用程序崩溃了。现在,我确定我可能不应该将其定义为键盘,因为它实际上没有按键,但是在Android中执行此操作的正确方法是什么?