問題タブ [surfaceholder]
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 - SurfaceHolder.lockCanvas()はnullを返します
次のコードを使用して、キャンバスを作成し、それにビットマップを描画しようとしています。
私が遭遇している問題は、コードでチェックしている問題です。lockCanvas()は常にnullを返します。私はこれを進めながら多かれ少なかれ学んでいるので、SurfaceView、SurfaceHolder、またはCanvasについて、自分が間違っている可能性があることを何らかの方法で言うのに十分な知識がありません。助言がありますか?
surfaceview - より速く描く方法は?SurfaceView、SurfaceHolderダーティレク
SurfaceViewに問題があります。
関数DrawWaveはタイマー間隔5msで呼び出されますが、実際には2つの呼び出しの間に30ms以上必要です(drawColor、drawPathを削除してみました)。
「モード1」と「モード2」を試してみましたが、Dirty rectを使用して、より高速に実行できることを願っています。間隔は同じで、どちらも30msを超えています(この幅は800px、eScrX-sScrX <20px)
質問1:SurfaceView / SurfaceHolderを使用して、私が間違っていることはありますか?
質問2:描画速度を向上させるために何ができますか?10msで描画が終了することを願っています。
私のコード:
android - ホームボタンが押されたときにsurfaceDestroyed()が呼び出された場合、スレッドが実行されます
私はAndroidのSurfaceviewの実装に不慣れです。android3.0でRDPクライアントアプリケーションを開発しています。ソケットから画像ストリームを取得し、SurfaceviewとThreadを使用してこの画像をサーフェスに描画します。
サーフェスビューのサンプルコード:
問題は
1)ホームボタンを押すsurfaceDestroyed()
と呼び出されthread
て終了します。
ただし、ホームボタンを押してアプリケーションを開いた後、スレッドを続行して画像(ソケットからの入力ストリーム)を更新する必要があります。
2)doubletap
イベントのアクティビティを子アクティビティとして呼び出すと、surfaceDestroyed()
呼び出されThread
て終了します。
子供の活動から戻った後、画像の表示を続ける必要がある場合。
どちらの場合も、スレッドがすでに開始されているため、例外が発生します。java.lang.IllegalThreadStateException:
ホームボタンが押されたり、別の子アクティビティが呼び出されたりせずに同じスレッドを実行する方法を教えてください。
ありがとう&よろしくヤミニ
android - getSurfaceHolder()。getSurfaceFrame()reurning Rectangle with zero height and width
私は基本的なライブ壁紙に取り組んでいます。コードは「ICSを実行しているGalaxyS2(GT-I9100)」で正常に機能しており、関数は正しい高さと幅の値を返しています。しかし、別のデバイス「GBを実行しているGalaxy S2(SHW-M250L)」getSurfaceHolder().getSurfaceFrame()
で同じapkを実行しようとすると、ログに表示される関数によって返される長方形の長方形の高さと幅がゼロになります。
Plzは以下のコードを参照してください:
私の懸念は、なぜ特定のデバイスで失敗するのか、それともバグを残すのかということです。前もって感謝します。
android - Androidカメラ-ポートレートモードでは画面の半分が黒くなります
カメラアプリを作成しようとしましたが、この問題に直面しました。カメラを横向きモードで使用するとすべて問題ありませんが、縦向きでsetDisplayOrientation(90)メソッドを使用すると次の問題が発生します。
画面の半分が黒です。
ここの画像:http://i.stack.imgur.com/sPTex.jpg
surfaceCreatedメソッド:
私のXMLレイアウト
ちなみに、ADBで撮影したスクリーンショットでは、カメラは正常に表示されています。XperiaST27iでSamsungGalaxyPocketをテストしました-同じ結果です。
ありがとうございました
android - 私のコードでこの SuperNotCalledException を修正するにはどうすればよいですか?
ゲームに問題があります。プレイヤーが死亡するたびに、「Try Again?」を押すことができる画面が表示されます。しかし、彼がこのボタンを押すと、ゲームがクラッシュし、Android はゲームが終了したと言います。そしていきなりゲーム再開。再起動する前にゲームがクラッシュする問題を解決する方法がわかりません。タッチのコードは次のとおりです。
すべてのバックグラウンド作業が行われる My Panel は、次のようになります。
そして最後に logcat:
前もって感謝します!
android - Android SurfaceHolder.lockCanvas は null を返します
Observer コールバックで Draw を実行しようとしていますが、キャンバスをロックしようとすると常に null が返されます。SurfaceHolder は問題ないようです。SurfaceHolder コールバックを追加すると、ゲームの早い段階で呼び出されます。
これが私のオブザーバーの更新方法です:
初期化で最初に使用する場所は次のとおりです。
サーフェスが作成されたときに再度設定することさえあります(念のために最近追加しました)
ここにいくつかのログがあります。最初は非同期スレッドから開始されていたので、スレッドを印刷しましたが、それを回避することができました。
私は一体何を間違っているのでしょうか?私のdoDrawは、ビットマップを描画しようとするまで機能していました。次に、lockCanvas から null をチェックすることを考えました。
ここで答えを見つけましたAndroidのカメラで使用されるSurfaceViewにオーバーレイを描画する方法は? プレビュー上では描画できないようです。PUSH_BUFFER タイプのサーフェスに関する例外が発生していたので、文句を言わないように NORMAL にリセットしました。プレビューのサーフェスをロックできず、NORMAL でない場合は例外がスローされました。どうやら、サーフェス タイプを動的に変更することはできません。それがおそらく廃止された理由ですが、カメラのプレビューは PUSH_BUFFER に設定しないと機能しません。撮影した写真を描画およびレンダリングするために、別の非サーフェス ビューを上に追加します。
ご覧いただきありがとうございます。これが誰かの役に立てば幸いです。
android - オートフォーカスを使用した写真の撮影に失敗しました
私の問題でいくつかの解決策を検索しましたが、それに関連する問題がたくさんあることは確かですが、私の懸念を解決するものは何もありません。
実行時例外を受け取りました: takepicture failed:native_autofocus
..etc.
オートフォーカスを使用してカメラから写真を撮ろうとしましたが、何がエラーを引き起こしたのか理解できないようです.
これが私のコードです。
実行可能なコードに何かが欠けていると思います。実行可能なコードを省略してオートフォーカスを一度実行しようとしたところ、実行時エラーが削除されました。この部分で何かを再初期化するのを逃しましたか?
java - Android SurfaceクラスSurface.ROTATION_を解決できないか、フィールドではありません
カメラアプリを修正しようとしています。カメラを横向きモードにすると、画面が横向きにプレビューされます。私はスタックでこの修正を見つけました:Android-カメラのプレビューは横向きです
私のCameraSurfaceView
クラスコンストラクターでは、次のようなサーフェスを取得しthis.Surface = getHolder();
ます。このsurfaceChanged
方法では、Surface.ROTATION _ <#>に対して0、90、180、および270度のディスプレイの回転を確認します(以下の方法)。ただし、ROTATION
Surface定数のそれぞれには、次のエラーで下線が引かれていますROTATION_<#> cannot be resolved or is not a field
。何が間違っているのかわかりません。私CameraSurfaceView
は私の活動とは別なので、ディスプレイがそれと関係があるのだろうかと思いますか?より多くのコードまたは何かが必要な場合は、これが正しく説明されていることを願っています。よろしくお願いします!