問題タブ [android-canvas]

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 投票する
2 に答える
22654 参照

android - ビューをビットマップに変換する

重複の可能性:
ビューを Android に表示せずにビットマップに変換しますか?

次の参照リンクからビューをビットマップに変換しようとしています

リンクテキスト

今問題は、ビューのみから変換されているビットマップを取得する方法です。この例では、著者はrelativelayout.dispatchDraw(c)を使用していますが、この行はコンパイル時エラーを引き起こしています。

タイプ ViewGroup のメソッド dispatchDraw(Canvas) が表示されない

ここに私のコードがあり、 onCreate 関数内に次のコードを書きました

ここで、returnedBitmap には (ImageView および TextView) のイメージが含まれている必要がありますが、このビットマップには、relativeView の bacground ビットマップ、つまり bgblack のみが含まれています。

0 投票する
4 に答える
43809 参照

android - Canvasにスムーズにスケーリングされたビットマップを描画する

これが私のAndroidアプリでの利用Bitmap方法です。Canvas

ただし、Bitmapはスムーズにスケーリングされないため、アンチエイリアシングは実行されません。アンチエイリアシングを有効にするにはどうすればよいですか?

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

android - Android キャンバスのテキストの描画とその後のテキストの変更

costum ビューを作成し、onDrawMethod でいくつかの描画を開始しました。いくつかの四角形、線、およびテキスト。

ここで、OnTouchEvent の後で、このテキストを変更したいと思います。

私の問題は、古いテキストを削除する方法がわからないことです。現時点では、TouchEvent の後に表示される 2 番目のテキストは、古いテキストと重なっています。新しいテキストで穴ビューを再描画する必要がありますか?

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

android - 通知バーを描画するにはどうすればよいですか?

通知バーの上に描画される長方形を描画する必要がありますが、機能させることができません。コードは次のようになります。

ただし0, 0、通知バーの上ではなく、通知バーの下にあります。通知バーを描画するにはどうすればよいですか?

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

android - DrawLine関数を実装する方法は?

質問:入力ポイントに円を描く以外に、画面に線を引く関数を実装するためのより良い方法はありますか?

詳細:基本的に線を引く関数を書こうとしていますが、通常の色の線にはなりません。この行を使用すると、ユーザーはその行を介して1つの画像から別の画像にピクセルをコピーできます。これは、Photoshopの「履歴ブラシ」または「スタンプ」のように考えることができます。私の最初の考えは、ポイントを取得し、各ポイントに円を描くことでした。これは機能していますが、スムーズではなく、いくつかのバグがあります。最初の問題は、ユーザーが指を速くスイープしすぎると機能しないことです。2点間の点を塗りつぶして線を引くことができれば問題は解決すると思いましたが、今回は描画が非常に遅くなります。もう1つの問題は、スムーズに見えないことです。

0 投票する
3 に答える
40837 参照

android - Canvas と Surface の概念を理解する

Android で使用される/ /システムSurfaceView全体に描画するプロセスを理解するのに苦労しています。SurfaceCanvasBitmap

Android-developers サイトで見つけたすべての記事と API ドキュメント ページ、Android グラフィックスのいくつかのチュートリアル、LunarLander ソース コード、およびこの質問を読みました。

これらの記述のうち、どれが真実でどれがそうでないか、そしてその理由を教えてください。

  1. Canvas独自のものBitmapが付いています。Surface独自のものCanvasが付いています。
  2. すべてViewのウィンドウは同じものSurfaceを共有するため、同じものを共有しCanvasます。
  3. SurfaceViewは のサブクラスであり、他の のサブクラスやそれ自体Viewとは異なり、描画する独自のものがあります。ViewViewSurface

また、追加の質問が 1 つあります。

  • ビットマップを使用した高レベルの操作Surfaceが既にあるのに、なぜクラスが必要なのですか。できる仕事をするのにふさわしくないCanvas状況の例を挙げてください。CanvasSurface
0 投票する
1 に答える
1042 参照

android - Android の Surface と ScreenResolution

状況を説明するために、私のゲームは Android 1.5 用に開発されました。そのため、どの Android フォンでもデフォルトで最低の解像度を使用していました。それは素晴らしかったです、ゲームは速く動いていました。

これで、ゲームが Android 1.6 をサポートする必要がある scoreloop のサポートが追加されました。ゲームを実行すると、画面密度を見ずに単位次元を使用したため、すべてが小さくなっていることに気付きました。

今、私はサイズを修正しました。ゲームが少し途切れ途切れに見えることに気づきました。新しい画面解像度での再描画が問題だと思います。

SurfaceView の Canvas にゲームを描画します。どうすれば速くなりますか?drawCircle、drawLine などのデフォルト関数を使用しています。高い画面解像度は必要ないため、画面解像度を下げると役立つと思います。それが可能かどうか、または方法がわからないだけです。

または、openglで私の描画を行うことで問題も解決するかもしれません。

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

android - Android の部分的なアンチエイリアス

Google マップのように大きなビットマップをタイルに表示するアプリケーションを作成しています。サーバーは、スケーリング/変換されたキャンバスに描画したビットマップを送信します。このビットマップをアンチエイリアスで描画したいのですが、キャンバスでアンチエイリアスを有効にすると、ビットマップのエッジが背景 (なし/黒) と混同され、タイル間に醜い暗い線が生成されます。描画時にビットマップのエッジをアンチエイリアスしないように Android に指示する方法はありますか? または、その問題に対して他にどのような魂が存在しますか?

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

android - Android:SurfaceViewとZレベルの質問

最初にSurfaceViewを含み、次に、さまざまなButtonsとTextViewsを含むRelativeLayoutを含むFrameLayoutがあります。

SurfaceViewのキャンバス上に多数のビットマップを描画しており、タッチイベントとモーションイベントを介して、ユーザーがそれらをドラッグできるようにしています。

これらのビットマップは、ドラッグすると、RelativeLayout内にあるボタンなどの下を通過します。

さて、SurfaceViewの「Zレベル」、またはそれを通過するものはすべて、レイアウトの他の部分の実際のZレベルとはまったく関係がないことを理解しているのは、私の(おそらく誤っている)ことです。これは本当ですか?もしそうなら、ドラッグされたビットマップが他のビューの上に描画されるように、どうすればそれを回避できますか?または、他にどのような方法でフルスクリーンキャンバスを実装しても、ボタンなどをオーバーレイのコントロールのように機能させることはできません。

私が実際に必要としているのはアンダーレイだと思います。アンダーレイでは、タッチイベントを下のボタンなどで拾うことができます。しかし、これを実現する方法がわかりません。キャンバスを再描画するときに、背景も再描画する必要があるためです。

FrameLayout内のRelativeLayoutとSurfaceViewの順序を入れ替えて、Canvasの背景を透明にすることはできますか?もしそうなら、どのように?タッチイベントは引き続き下のボタンに「フォールスルー」しますか?

私と一緒にいてくれてありがとう、私は少しワッフルだと知っています。

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

android - Androidで他のビューを使用して画面に描画する

私は過去数時間、非常にばかげた質問への答えを探していました。ビュークラスを拡張し、onDrawを変更し、setContentView()をそのクラスの新しいインスタンスに設定すると、Androidでキャンバスに描画する方法を知っています。ただし、アクティビティの下部に 2 つの TextView と 2 つの EditText も必要です。 setContentView() がそのビューのみを持つように設定されている場合、これらのビューは明らかに表示されません。これらすべてを画面に表示するにはどうすればよいでしょうか。

編集:ここに私のコードがあります:(パッケージ名はandroid.physicsengineです)

そしてxml