
Androidの開発をしてて、
ボタン(画像でボタンを作成するか、Buttonクラスとかのボタンでも可)を押すと
処理を行いたい制御を組み込もうとしてます。
あるサンプルのソースを見てると
Canvasというのを利用して画面を表示して、
onTouchEventというのでタッチされたイベントをひろい、
どこがタッチされたかというのを計算により求めてます。
この方法だと押された場所を計算しないといけない(?)為、別の方法も考えてます。
・Canvasでオブジェクトを追加して、そのオブジェクトが押されたらって処理する事は可能でしょうか?
・Canvasで画面を作成し、同一画面でButtonクラス等でボタンを作り、Buttonクラスの押下イベント処理を取得する事は可能でしょうか?
・ボタン画像を作成した場合、そのボタンの表示と押下イベント取得は一般的にどういう方法が適切なのでしょうか?
初心者ですみません。
画像ボタンとButtonクラスのボタン、どういうイベント取得が適切なのか考えてます。
ちなみに、画面のほかの部分ではCanvasというのを利用し作ってます。
どこか一部でも解答頂けると助かります。よろしくお願いします。
No.1ベストアンサー
- 回答日時:
一般的なGUIとして用意されているButtonなどのパーツは、標準でクリックした時のイベント処理機能などを内蔵しています。
これを使うのがもっとも簡単です。単純に、ボタンや入力フィールドなどを組み合わせた画面を作るときはこれで十分です。ただし、これらのGUIパーツは、既に完成されたものですから表示をカスタマイズしたりできません。Canvasは、GUIではなく、グラフィックを表示するための部品です。これは描画メソッドを使って自由に表示を作れますが、Canvas全体に関するイベント処理が用意されているのみです。そもそもCanvas内に何がどう表示されるかすべてプログラマが考えて作るのですから、イベント処理も自分で作るしかありません。
Canvasを使っているのであれば、ボタンのグラフィックを自分で作ってそれを表示し、onTouchEventでクリック地点からボタンが押されたかどうかを調べ、押された場合はクリックしたグラフィックを描画してイベント処理を実行する、といったことをすべて自分で実装しないといけません。
それは面倒というのであれば、例えば画面にはRelativeLayoutなどを配置し、そこにCanvasとButtonを表示する、といったやり方はあるでしょう。このへんは、どれが正解というのはありません。そのアプリにどれが最適か考えてみてください。
個人的には、Canvasを使ってグラフィック描画を中心としたアプリを作るなら、面倒でもボタンの表示やイベント処理もすべてCanvasを使い、自前でプログラムを書くのが一番だと思います。面倒ではあっても、それが最終的には一番扱いやすいコードになるでしょう。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
アプリやソフトのダウンロード...
-
アゴダっていうホテル予約のア...
-
このアプリがなくなるのはなぜ...
-
Docker環境は以下通りです。doc...
-
薬手帳アプリ、マイナンバーと...
-
ペイデイ とうアプリはお金を借...
-
ドミノピザアプリについて 先ほ...
-
Android アプリで「見開きの一...
-
androidアプリ更新DLしたら、ア...
-
ダウンロードしたアプリの簡単...
-
1回垢BANされたアプリは もう入...
-
6月2日にこのアプリが終了しま...
-
どうかどなたか教えてください。
-
mp4の音声を、バックグラウンド...
-
質問・相談系の無料アプリをで...
-
アプリで人から人に質問する で...
-
パスワード管理 iPhone のパス...
-
特定のアプリだけキーボードが...
-
歩くだけでポイントが貯まるア...
-
スマホ(iPhone)で写真を絵に...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.net webアプリケーション 戻...
-
ボタンの背景色を変更する方法
-
VC++にてボタン等のサイズ取得
-
子画面を読んだ後親画面のRecor...
-
xampp Apacheの「Admin」の管理...
-
HTMLで投票ボタンを作りたい
-
フォーム上のどのボタンが押さ...
-
画面の右上の×をキーボードで操...
-
ipodnanoの画面が真っ暗です!!
-
IEの「検索」ボタンに変なサ...
-
【iphoneアプリ開発】ボタン&...
-
Change・org(チェン...
-
Dreamweaver で外枠が反映され...
-
FLASHで動画と再生などのコント...
-
エクセルについて
-
P211iを使用している人に質問です
-
メールの[メッセージの作成]画...
-
ipot アイポット のエラーに...
-
MFC VC++ 6.0 使用
-
gメールの受信メールのリンクか...
おすすめ情報