在Android游戏中获取用户输入

时间:2013-09-30 21:10:26

标签: android canvas input keyboard

我正在构建我的第一个Android应用程序,这是一个简单的游戏。我通过使用Canvas扩展Activity类并使用2D图形绘制到屏幕来实现它(用于学习目的)。

现在我想获得用户/玩家首字母,我需要像组件这样的东西来阅读它。我可以自己去画一个键盘并将触摸听众绑定到它/读取触摸事件但我已经知道Android中已经有类似软件键盘的东西。我想的一个选择是使用EditText组件。

我可以使用Canvas渲染软件键盘或EditText组件吗? EditText和KeyBoardView似乎有方法绘制(Canvas画布)。这是正确的方法吗?如何设置绘制组件的坐标?

如果这样可行,布局和一般外观可能不符合游戏的外观和感觉,这是一个正确的假设吗? (这意味着我仍然需要自己实现它?)

提前致谢!

1 个答案:

答案 0 :(得分:0)

使用软件键盘可能会破坏游戏的外观。尽管如此,如果你的游戏是 简单类型,您可以在活动的视图中放置EditText,如下所示:

FrameLayout layout = new FrameLayout(this);

layout.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT));
EditText eTInitials = new EditText(this);  
eTInitials.setPadding(0, 0, 0, 5); //change to suit your game
eTInitials.setGravity(Gravity.CENTER_HORIZONTAL|Gravity.BOTTOM); //change to suit your game
etInitials.setOnKeyListener(new OnKeyListener(){ [override onkeymethod here]   }); //get player initials here
layout.addView(yourView);

layout.addView(eTInitials);
setContentView(layout);

我记得通过软件键盘在3D游戏中保存了我的高分,所以这种方法并不差。

或者正如您所说,您可以通过绘制自己的自定义键盘位图并阅读触摸事件来自行实现。