問題タブ [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 に答える
507 参照

android - Androidカスタムビューが正しく描画されない

Androidギャラリービューに基づくカスタムウィジェットがあります。ビューの左側から要素をギャップなしで表示し、必要なイベントをリスナーに渡すように少しカスタマイズされています。

最初のビューレイアウトでは、すべてが完璧に機能します。ただし、アクティビティを一時停止して再開すると、ビューがフリーズします。表示され、OnTouch()イベントハンドラーが機能し、ビューの位置が調整されているのがわかりますが、画像は変化していません。GalleryウィジェットのOnDraw()メソッドはまったく呼び出されません!このレイアウトには別のウィジェット(スライド式の引き出し)があり、引き出しをかろうじて動かすとすぐに、すべてが正常に機能し始めます。

私はこれを修正する方法について完全に考えがありません。OnDraw()メソッドを強制するさまざまな方法を試しましたが、機能していません。

何か案は?

ありがとう

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

android - AndroidオーバーライドonDraw()の問題

ここに小さな問題があります。これまでのコードです。

そしてmain.xmlファイル:

onDraw()関数でテキストを設定しようとすると、アプリがクラッシュしますが、何が間違っていますか?

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

android - onDraw()のEditText

EditTextを追加する方法は知っていますが、onDraw()関数にはありません。

上記は機能しません。また、以下も機能しません。

どうすればこれを行うことができますか?基本的に編集可能なテキストボックスを追加したいのですが、使用していないため:

そのめちゃくちゃ。助言がありますか?

私は試した:

しかし、それでも私が間違っていることは機能しませんか?

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

android - onDraw() セクションのアニメーション化

私は次のクラスを持っています:

私の GuageAnimation クラスは次のとおりです。

したがって、基本的に、これは弧の方程式に基づいて円形の画像を一度に 1 つずつトリミングします。円のピースがすべて塗りつぶされているようなアニメーションを表示したい(円が構築されていることを示す、クリップされた各パスを表示する)。だから私は次のような for ループを行うことを考えていました:

しかし、これは機能しません.i = 100のときに最終結果を描画するだけです。これを行う方法について誰か考えがありますか?

0 投票する
0 に答える
605 参照

android - FrameLayout での冗長な onDraw() 呼び出し

私のxmlには次のレイアウト構造があります。

MyEntireViewはマップ (Drawable) であり、そのMyDetailedView上にポップアップし、onTouch()マップ全体 (Drawable) の特定の部分のみを含み、ユーザーが でマップ全体に触れた領域をより詳細に表示しますMyEntireView

が表示されている場合MyDetailedView、つまり、そのsetVisibility(View.VISIBLE)上にいくつかの透明な形状 (いくつかのビットマップも) が表示され、定期的に (たとえば、1 秒間隔で) 再描画されます。@+id/focusedlayout形状は常に異なる数が存在し、それらの位置は詳細な地図画像に関連しているため、形状は の子として動的に追加されます。

そして問題は、各更新が複数回処理されることです。シェイプが更新onDraw()されるたびに、MyEntireView が呼び出され、MyDetailedViewonDraw()が呼び出され、これら 2 つが再度呼び出されます。そして、この後にのみ形状自体が無効になります。

その結果、この動作により形状がちらつきます。これは、MyDetailedView形状が再描画されて 10 ミリ秒程度非表示になるためです。

おそらくいくつかの単純なロジックを見落としているに違いありませんが、ViewGroup の 1 つのビューのみを強制的に無効化する方法があるかどうかはわかりません。

または、目的に合わせて使用​​できる別の構造/レイアウトがあるのでしょうか?

どうもありがとう!

PSコード全体をここに置くにはかなり大きいですが、リクエストに応じて任意の部分を挿入します

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

android - OnDraw()は起動されず、surfaceViewには何も描画されません-Android

こんにちは!onDraw()呼び出しで画像を塗りつぶしたい水平スクロールビュー内にsurfaceViewがあります。しかし、何も描かれていません。描画がスレッドCanvasThreadから行われるクラスがあります。

私は変更しようとしました

synchronized (_surfaceHolder) { _panel.postInvalidate(); }

また、運がなくてもsetWillNotDraw(false)という呼び出しを追加しようとしました。

これは一般的な問題のようですが、私が遭遇した解決策はどれも私には効果がありませんでした。

ありがとう!

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

android - OnDraw でスレッドまたはペイントクラスから DataHelper を呼び出すにはどうすればよいですか?

簡潔なタイトルで申し訳ありません。メインの GUI スレッドから遠ざけるために、CanvasThread で実行されるクラスで描画する Android アプリがあります。しかし今、クエリから DataHelper クラスへのデータに基づいて四角形を描画したい場合。DataHelper をインスタンス化したい場合、DataHelper にDataHelper dh = new DataHelper(this);別のコンストラクターが必要であるという苦情が表示されます。このコンストラクターは、Context ではなく PanelChart を引数として受け取ります。どうしてこれなの?

これは私の PanelChart クラスです:

getData(dh); DataHelper を呼び出して描画に必要な情報を取得するメソッドを呼び出したい場所からです。

DataHelper で別のコンストラクターを作成する必要がありますか? 別のクラスでクエリを実行し、それを PanelChart クラスに送信する必要がありますか?

ありがとう!

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

android - Android surfaceview onDraw と thread.onDraw の比較

Android ゲームで使用するのに適しているものは次のとおりです。

  • aSurfaceViewレンダリング スレッド付き

    また

  • 関数SurfaceViewを呼び出すスレッドを持つaSurfaceViewdoDraw()

ありがとう。

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

android - AndroidのonDraw(Canvasキャンバス)にintを渡すにはどうすればよいですか?

Androidで円グラフを描くためにサーフェスビューを使用しています。パイスライスの大きさを知るには、onDraw()メソッドにパラメーターを渡す必要があります。これどうやってするの?onDraw()内で、適切なデータをフェッチするdatahelper-classにクエリを実行します。

onDrawから1つのアクティビティで静的関数を呼び出そうとしましたが、どの関数が整数を返しました。しかし、もっと動的なものが必要なので、必要な整数をアクティビティからonDrawに送信して、円グラフの形式で結果を取得できます。

助言がありますか?

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

android - Androidでそれらの間にスペースを入れて長方形を描く

Androidで5本の長方形のバーを描きたいです。レグタングルがありますが、少し間隔を空けて配置したいと思います。

一番下に揃えて、同じ距離に配置したいと思います。

offset、offsetTo、translateを試しましたが、それらを使用する際のロジックが見つかりません。35ディップ右に移動し、すべて30ディップ幅になるように、すべてを異なる場所から開始するようにします。左側に35を追加しましたが、それでも同じ場所から発生しています。