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で質問しましょう!
似たような質問が見つかりました
- HTML・CSS ボタンをクリックした時に、入力フォームのすぐ下部に、「入力欄が空白です」というテキストメッセージが表 1 2022/04/27 16:25
- Word(ワード) Word のマクロについての質問です。 ボタンを押すと登録したブックマーク先にジャンプする機能(リン 3 2023/08/16 12:17
- アプリ Edgeを操作するアプリについて 4 2023/05/11 22:48
- 電子マネー・電子決済 QUICPayの登録ができない。 4 2023/06/10 10:57
- HTML・CSS htmlで画面遷移させたい 1 2022/10/28 18:19
- JavaScript Javascriptが機能せず原因が分からないので教えて頂きたいです 3 2023/06/04 14:50
- JavaScript ①入力フォーム→②確認表示画面→③送信完了画面のコードを書いているのです、 入力フォームから受け取っ 2 2022/05/10 16:45
- JavaScript javaScriptで画面に値を入れるには 1 2022/08/14 12:27
- Java Javaプログラミングの質問になります。 ボタンを押下した時に画面遷移して 画面から戻ってきた時のi 1 2023/06/26 07:50
- JavaScript jsで診断コンテンツのページ内切り替えについて 1 2023/04/14 17:31
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
VB.net webアプリケーション 戻...
-
HTMLで投票ボタンを作りたい
-
ボタンの背景色を変更する方法
-
Linuxでの開発環境構築や設定の...
-
FLASHゲームのセーブデータが消...
-
フォルダーに緑のレ点と赤の✖が...
-
wineでゲームを起動したい
-
vbsでデバッグしながらコードを...
-
日本に、Microsoftのような会社...
-
WindowsDefender以外のウイルス...
-
簡易ガンマ設定ツールの代替
-
Android スマホ、SDカードのフ...
-
xアプリを起動すると再試行とキ...
-
ituneダウンロード時 iphone 5.1
-
ファイバ、マイクロスレッドの...
-
explore excelというものについ...
-
パソコンに表示されるAOSBOXfor...
-
ブラウザから音楽プレイヤーの...
-
Android地図アプリ開発について
-
アイコンをダブルクリックして...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
VB.net webアプリケーション 戻...
-
VC++にてボタン等のサイズ取得
-
ipodnanoの画面が真っ暗です!!
-
HTMLで投票ボタンを作りたい
-
検索ボタンなどに使う虫眼鏡の...
-
xampp Apacheの「Admin」の管理...
-
フォーム上のどのボタンが押さ...
-
ボタンの背景色を変更する方法
-
「改ページプレビュー」ボタン...
-
子画面を読んだ後親画面のRecor...
-
visual stduo を使ったc#での...
-
iPad トップアイコンの消し方
-
WordPressで1回だけ表示可能な...
-
このような画面って、閉じるボ...
-
ヘルプの作成方法
-
これはなんとゆってるんですか?
-
oppo reno 7A
-
フォルダーに緑のレ点と赤の✖が...
-
Linuxでの開発環境構築や設定の...
-
gcc13.2のバグ?
おすすめ情報