問題タブ [ondraw]

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.

0 投票する
1 に答える
708 参照

android - Android Surfaceview と異なる解像度の問題

奇妙な問題に遭遇しましたが、それを解決する方法を管理できません。

シナリオ

  • さまざまな位置にいくつかの画像を描画する Surfaceview があります。まず、l/m/hdip ドローアブル用のフォルダーを作成すると、問題なく動作しました。次に、1 つのフォルダーのみを描画可能にし、Android にサイズ変更を任せることにしました。drawable-mdip および drawable-ldip フォルダーを削除し、すべての drawable-hdip コンテンツを drawable フォルダーに移動して、アプリケーションを実行しました。

問題

  • リソースが drawable-hdip にある場合、surfaceview は想定どおりに画像を処理しました。すべてが適切に見えました。hdip リソースをドローアブルに移動した後、サーフェスビューのすべてが大きすぎます。すべてが 130% ズームされているようです。このズームを行う理由が見つからないため、これを修正する方法が見つかりません。テストデバイスはGalaxy Sなので、見た目は良いはずです.

どんな答えでも大歓迎です。

0 投票する
2 に答える
520 参照

android - Android onDraw() メソッドと画像の追加

アニメーションの目的で onDraw() 関数をオーバーライドしたビューがあります。ただし、ビューで静的にしたい画像がいくつかありますが、これらの画像を onDraw() 関数でも描画する必要がありますか、またはこれらの画像を XML または何かを介してテンプレートとして適用できますか?

0 投票する
1 に答える
536 参照

android - AndroidのOnDrawメソッドでアラートダイアログボックスを操作する方法

こんにちは私はスレッドによって何度も呼び出されるゲームのOnDrawメソッドでアラートダイアログボックスを使用したいのですが、これを行うことができません。画面がちらつき始めます。OnDrawメソッドの外部で機能するため、アラートボックスにエラーはありません。誰かが私を助けたいと思ったら、少しの助けをいただければ幸いです。再度nが呼び出されるOnDrawメソッドのアラートボックスを使用したいと思います。

皆さんに感謝します。

0 投票する
2 に答える
2727 参照

android - Android SurfaceView onDraw の質問

私の SurfaceView の onDraw メソッド draw は、画面上の TouchEvents によって決定されるパスの LinkedList です。LinkedList から最後のパス ノードを削除する元に戻す機能を追加したいと考えています。ボタンを押すと、パスはリストから削除されますが、元に戻すボタンをもう一度押すか画面に触れるまで、SurfaceView は更新されません。

ありがとう、エリック

0 投票する
1 に答える
5530 参照

android - ポリゴンを描画して塗りつぶします

私がやりたいのはポリゴンを描くことで、完成したらポリゴンを半透明の色で塗りつぶしたいと思います。

canvas.drawLine(...)を使用してポリゴンを描画することはできますが、塗りつぶすことができません。

java-awtでは簡単ですが、Androidでは見つかりません。

どんな助けでも大歓迎です。

ありがとう。

0 投票する
2 に答える
679 参照

java - キャンバスの描画が遅すぎます

ビデオフレーム(ビットマップ)をステップスルーできるアプリに取り組んでいます。また、フレームで構成されたビデオを実際に表示しているかのように、フレームを次々に再生する機能もあります。

一度に1つのビットマップを表示しているImageViewが1つあります。私が抱えている問題は、ImageViewへの画像の描画(super.onDraw()の呼び出しだけを話している)に約30msかかることです。フレームは元のフレームレートで再生する必要があるため、これは問題です。プロセスを遅くしている他の操作も進行中ですが、描画は確かに役に立ちません。

OpenGL ESを調べていましたが、すべてのデバイスが2乗以外のイメージをサポートしているわけではないため、機能しません。画像のサイズは、半分のサイズでサンプリングしているため、デバイスの記録されたビデオ解像度の半分です。これは、2の累乗の画像になることはほとんどありません。

描画を高速化するために速度を上げる方法はありますか?

0 投票する
1 に答える
1377 参照

android - Android:TextView onDraw()は1回だけですか?

onDraw()メソッドでTextPaintを使用してカスタムTextViewを作成しています。ただし、これは私のアプリに深刻な問題を引き起こしています。パフォーマンスに関しては、つまり。

onDraw()メソッドは何度も呼び出されます。しかし、私はそれを一度だけ描きたいです:(

setDrawingCacheEnabled(true);を使用してみました。しかし、そこには影響はありません。

メインレイアウトのテキストビューが自動的に回転するビューフリッパーもありますが、これによりすべてが再描画される可能性がありますか?

誰かが私にここでいくつかのポインタを与えることができますか?

0 投票する
1 に答える
1129 参照

android - Android - onDraw メソッドで描いた円にフォーカスを設定します

アンドロイドの質問です。カスタム ImageView クラスを作成しました。その中には、特定のピクセルに (キャンバスを使用して) 円を描画する onDraw メソッドがあります。このカスタム イメージビューを使用してイメージを開くと、描画した円にフォーカスを設定したいと思います (たとえば、Google マップが現在の場所で行うように。フォーカスは現在のポイントに設定されます)。

0 投票する
1 に答える
876 参照

java - Android で画面全体を表示する - ビューの制限を尊重するようにキャンバスに指示する方法は?

編集:

OK、ビューの長さと幅を画面の大部分に拡張しました onDraw() メソッドはビューの制限を取り込んでいないと想定できます。仮定する。では、ここでの問題は、ビューの制限を尊重するようにキャンバスに指示する方法でしょうか? いくつかのパラメーターを強制する可能性がありますか?

編集の終わり

カスタム ビューを描画するためのコードを実装しましたが、キャンバスが空白です。ログトレースを追加したので、実行されていると確信しており、それらは問題なく表示されています。

カスタム ビューの描画を適切に実装するにはどうすればよいですか? また、以下で実行したことの何が問題なのですか?

次のようなレイアウトの中に入る私のカスタム ビュー:

customview は、pis.core.JMI_VistaMenuIn という名前のビューです。プレビューでは「java.lang.UnsupportedOperationException」が発生しましたが、.apk が読み込まれると xml レイアウトが機能します。

これが私のカスタムビューのコードです。前に言ったように、ロギングを含む行がヒットしていますが、キャンバスは空白です:

0 投票する
1 に答える
13762 参照

android - カスタム ビューでドローアブルの境界を設定する場所

概要: いくつかの単純な形状 (正方形と三角形) を作成し、それらをアクティビティの背景画像として使用しようとしています。図形のサイズは、画面の幅と高さに依存します。問題は、これらの形状の境界を設定しているにもかかわらず、画面内に収まりながらできるだけ大きく描画されていることです。

詳細: ControlsOverlayView.java と呼ばれるオーバーライドされたビュー クラスで、いくつかの図形を含む非常に単純な背景画像を作成しようとしています。キャンバスのサイズを把握してから onDraw メソッドでペイント メソッドを呼び出しています。これは、キャンバスの大きさを初めて知るときだからです。コードをステップ実行して、各形状が正しい境界を持っていることを再確認しましたが、問題は、どの形状も境界に従っておらず、各形状が画面に表示できる限り大きく描画されていることです。

}

アクティビティは ControlsOverlayActivity.java と呼ばれ、次のようになります。

xml ファイルは controls_overlay.xml と呼ばれ、次のようになります。

私は本当にここで立ち往生しており、おそらく onDraw() メソッドからサイズ変更とペイントを呼び出すのが最適な場所ではないのではないかと考えていますが、高さと幅を知る必要があるため、他にどこでそれを行うことができるかわかりません画面の。また、何も変更しなかった super.onDraw() への呼び出しを移動しようとしました。