問題タブ [surfaceview]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - SurfaceView への描画時のアプリケーション エラー
main.xml レイアウトで作成された SurfaceView に描画しようとして、簡単なコーディングを試みています。背景色の変更やアイコンの表示は問題なくできるのですが、描画しようとするとエラーになります。私は初心者なので、何かが欠けていることは明らかです。助けのヒントを貸してください、ありがとう!
main.xml
ここにコードを記述します。
アップデート:
わかりました。ありがとうございます。
android - AndroidSurfaceViewの幅/高さ
私はAndroid用のアプリをいくつか作成しましたが、グラフィックをそれほど使用したものはありませんでした。私は今、実際のゲームを作ろうとしています。キャンバス上にいくつかのビットマップがあります。私の問題は、それらの位置をどこで初期化するかわからないことです。OnTouchイベントでは、ビットマップが画面の外に外れないようにしたいです。たとえば、1つのビットマップを初期化します。
20と30は任意でした。しかし、screen.getWidth()のようなものを記述できるようにしたいので、ビットマップが画面の境界に対してどこにあるかを正確に把握できます。開発者向けリファレンスでこれを見つけることができません。
android - Android - レイアウト、サーフェス ビュー、およびキャンバスの難問
ここで一度に多くのことを尋ねようとしているのかもしれませんが、少しでも私を助けてくれる聖人で忍耐強い Android の第一人者は、おそらく私のプロジェクトを失敗から救ってくれるでしょう。
私は、ユーザーが別のビューで「衣類の在庫」ビューから「人形」にアイテムをドラッグできる着せ替え人形アプリに取り組んでいます。
まず、人形とインベントリを別々のビューに表示し、2 つの間でビットマップをドラッグする方法がわかりません。(ビットマップの描画とドラッグ自体は問題ではありません)。
これまでのところ、拡張された SurfaceView を 1 つ使用するだけで作業できました。これをプログラムでレイアウトに追加し、スレッドを使用してキャンバスに描画します。キャンバスの片側に、人形を構成するビットパスを描きます。一方で、インベントリを構成するビットマップを描画します。そのようにうまく動作しますが、2 つのビューに分割できるようにする必要があります。a) 人形ビューの高さは在庫ビューの高さよりも大きくする必要があり、b) を再利用したいからです。別の場所にある 2 つのビューは、それぞれ別のアクティビティにあります。
最後に、私の質問は次のとおりです。2 つのサーフェス ビューのキャンバス間でビットマップを共有するにはどうすればよいですか? または、他のビュー (Buttons TextView など) をその上に配置して画面全体をカバーする Canvas を使用できますか? または、私が試みていることを行うための他の完全に論理的な方法があり、それは私を通り過ぎましたか? 2 つの SurfaceView があり、それぞれがスレッドによって制御されている Canvas を持っている場合、ドラッグしているビットマップが部分的に両方の Canvas の領域の「内側」に同時に入る可能性があるという事実をどのように処理しますか? (私は本当に 1 つの画面サイズの Canvas が欲しいだけですよね?)
プログラム的に追加された SurfaceView (DollView と呼びましょう) は、以下の Layout XML に従って、空のネストされた RelativeLayout に追加されます。私はレイアウト XML にボタンを追加することで、何らかの形で DollView の上に表示され、DollView のキャンバスの継続的な描画と再描画の影響を受けないことで、物事を継続的にごまかしています。衣料品や人形のビットマップをドラッグすると、これらのボタンの下を通過します...そして、DollView の親 RelativeLayout の指定された幅の外にビットマップをドラッグしても、それを「保持」して元に戻すことができます表示されますが、画面には描画されません。それにも完全に困惑していますが、それは今の私の問題の中で最も小さいものです.
この狂気に興味がある人なら誰でも、見たいと思うだけのコードを見せることができます。我慢してくれてありがとう。説明しようとして頭が痛くなったのと同じくらい、読んでも頭が痛くならないことを願っています!:)
OnCreate でコンテンツ ビューとして設定されているアクティビティのレイアウトを次に示します。
android - Androidのカメラの向きを正しく設定するには?
Android のデバイスの向きに合わせてカメラの向きを設定したいのですが、何も機能していないようです。Surface とカメラ パラメータを回転させようとしましたが、ポートレート モードのカメラ プレビューは常に上下逆になります。正しくするには、時計回りに 90 度回転させる必要があります。これは、ランドスケープモードでのみ機能する現在使用しているコードです。
android - タッチの有効性を正確にチェックする
写真が表示されるアプリを作成しようとしています。ユーザーが識別する必要のあるオブジェクトがいくつかあります (カップなど)。画面上の写真のカップに触れると、有効な場合は円が描画されます。 .
これまでのところ、ビットマップを描画可能にして全画面表示できるサーフェスビューがあり、画面に触れるとビューに円が描画されます。
写真でカップの座標を手動で取得することしか考えられず(ハードコード)、タッチevent.getX()
とevent.getY()
. ただし、画面の解像度が変更されると、これは機能しません。
そうするためのより良い方法は何ですか?アプリで定義した特定の領域へのタッチを正確に許可する方法を見つけようとしているようです。
android - Android:SurfaceViewとZレベルの質問
最初にSurfaceViewを含み、次に、さまざまなButtonsとTextViewsを含むRelativeLayoutを含むFrameLayoutがあります。
SurfaceViewのキャンバス上に多数のビットマップを描画しており、タッチイベントとモーションイベントを介して、ユーザーがそれらをドラッグできるようにしています。
これらのビットマップは、ドラッグすると、RelativeLayout内にあるボタンなどの下を通過します。
さて、SurfaceViewの「Zレベル」、またはそれを通過するものはすべて、レイアウトの他の部分の実際のZレベルとはまったく関係がないことを理解しているのは、私の(おそらく誤っている)ことです。これは本当ですか?もしそうなら、ドラッグされたビットマップが他のビューの上に描画されるように、どうすればそれを回避できますか?または、他にどのような方法でフルスクリーンキャンバスを実装しても、ボタンなどをオーバーレイのコントロールのように機能させることはできません。
私が実際に必要としているのはアンダーレイだと思います。アンダーレイでは、タッチイベントを下のボタンなどで拾うことができます。しかし、これを実現する方法がわかりません。キャンバスを再描画するときに、背景も再描画する必要があるためです。
FrameLayout内のRelativeLayoutとSurfaceViewの順序を入れ替えて、Canvasの背景を透明にすることはできますか?もしそうなら、どのように?タッチイベントは引き続き下のボタンに「フォールスルー」しますか?
私と一緒にいてくれてありがとう、私は少しワッフルだと知っています。
android - サーフェス ビューにテキスト ビューを追加する
これをアプリケーションでサーフェス ビューとして使用していますが、プログラムでテキスト ビューを追加したいと考えています。どうやってやるの。
ありがとう......
android - ホームを押した後、Android Surfaceview onClick イベントが機能しない
私はチュートリアルで与えられたようにゲームループを使用しました
http://www.droidnova.com/playing-with-graphics-in-android-part-vii,220.html
ホームボタンを押して再び surfaceview に戻ると、その後 onclickview が機能しません
android - 月着陸船の例の欠陥(IllegalThreadStateException)
私は月着陸船の例をいじってみましたが、アバウトスクリーンを実装しようとしたときに問題が発生しました。(onCreateOptionsMenuの)メニュー項目の1つを「about」オプションに変更しました。このオプションを選択すると、新しいアクティビティが開始され、バージョン情報画面が表示されます。
これは完全に機能し、フォーカスは新しいアクティビティに移動します。ただし、電話を押してゲームに戻ると、プログラムがクラッシュします。このエラーが発生します:
誰かが私が何が起こっているのか理解するのを手伝ってもらえますか?他の何かからゲーム画面に戻ろうとすると、同じ問題が発生します(設定アクティビティ、ヘルプアクティビティ、またはホーム画面のいずれからでも)。ありがとう
android - OpenGL の平面の配置
9 つの平面を示す GLView を含む SurfaceView を作成しようとしています。平面を原点の周りにひし形に向けようとしています。基本的に、最上層はすべて、120 度の円形状に分離された 120 度の角度で原点に向けられます。中間層も 120 度離れていますが、x 軸に垂直で y 軸に平行です。最下層は最上層の逆になります。
これまでのところ、ヨーとピッチが適切に設定されていることを確認するために、ループ (うまく終了せず、平面が作成物全体に散らばっていました) と平面ごとに移動を試みました。どちらも機能していません。
アイデアがある場合は、私に教えていただくか、適切なチュートリアルの方向を教えてください。
ありがとう〜エイドン
これが私の行ごとのコードスニペットです:
dyaw & dpitch: 120 度
w & h: 幅 (2) と高さ (3) に応じて
間隔: .5f