0

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

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

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

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

提前致谢!

4

1 回答 1

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 游戏中保存了我的高分,所以这种方法还不错。

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

于 2013-10-01T00:22:18.237 回答