0

シンプルなゲームである最初のAndroidアプリを構築しています。Activity クラスを拡張し、2D グラフィックスを使用して Canvas を使用して画面に描画することでそれを行いました (学習目的で)。

今、ユーザー/プレイヤーのイニシャルを取得したいと思います。それを読み取るには、コンポーネントのようなものが必要です。私は自分でキーボードを描いてタッチリスナーをそれにバインドしたり、タッチイベントを読んだりすることができましたが、ソフトウェアキーボードのように、Androidにはすでに似たようなものがあることを理解しています。私が考えていた 1 つのオプションは、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 に答える