問題タブ [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.
android - ビューをビットマップに変換する
次の参照リンクからビューをビットマップに変換しようとしています
今問題は、ビューのみから変換されているビットマップを取得する方法です。この例では、著者はrelativelayout.dispatchDraw(c)を使用していますが、この行はコンパイル時エラーを引き起こしています。
タイプ ViewGroup のメソッド dispatchDraw(Canvas) が表示されない
ここに私のコードがあり、 onCreate 関数内に次のコードを書きました
ここで、returnedBitmap には (ImageView および TextView) のイメージが含まれている必要がありますが、このビットマップには、relativeView の bacground ビットマップ、つまり bgblack のみが含まれています。
android - Canvasにスムーズにスケーリングされたビットマップを描画する
これが私のAndroidアプリでの利用Bitmap
方法です。Canvas
ただし、Bitmap
はスムーズにスケーリングされないため、アンチエイリアシングは実行されません。アンチエイリアシングを有効にするにはどうすればよいですか?
android - Android キャンバスのテキストの描画とその後のテキストの変更
costum ビューを作成し、onDrawMethod でいくつかの描画を開始しました。いくつかの四角形、線、およびテキスト。
ここで、OnTouchEvent の後で、このテキストを変更したいと思います。
私の問題は、古いテキストを削除する方法がわからないことです。現時点では、TouchEvent の後に表示される 2 番目のテキストは、古いテキストと重なっています。新しいテキストで穴ビューを再描画する必要がありますか?
android - 通知バーを描画するにはどうすればよいですか?
通知バーの上に描画される長方形を描画する必要がありますが、機能させることができません。コードは次のようになります。
ただし0, 0
、通知バーの上ではなく、通知バーの下にあります。通知バーを描画するにはどうすればよいですか?
android - DrawLine関数を実装する方法は?
質問:入力ポイントに円を描く以外に、画面に線を引く関数を実装するためのより良い方法はありますか?
詳細:基本的に線を引く関数を書こうとしていますが、通常の色の線にはなりません。この行を使用すると、ユーザーはその行を介して1つの画像から別の画像にピクセルをコピーできます。これは、Photoshopの「履歴ブラシ」または「スタンプ」のように考えることができます。私の最初の考えは、ポイントを取得し、各ポイントに円を描くことでした。これは機能していますが、スムーズではなく、いくつかのバグがあります。最初の問題は、ユーザーが指を速くスイープしすぎると機能しないことです。2点間の点を塗りつぶして線を引くことができれば問題は解決すると思いましたが、今回は描画が非常に遅くなります。もう1つの問題は、スムーズに見えないことです。
android - Canvas と Surface の概念を理解する
Android で使用される/ /システムSurfaceView
全体に描画するプロセスを理解するのに苦労しています。Surface
Canvas
Bitmap
Android-developers サイトで見つけたすべての記事と API ドキュメント ページ、Android グラフィックスのいくつかのチュートリアル、LunarLander ソース コード、およびこの質問を読みました。
これらの記述のうち、どれが真実でどれがそうでないか、そしてその理由を教えてください。
Canvas
独自のものBitmap
が付いています。Surface
独自のものCanvas
が付いています。- すべて
View
のウィンドウは同じものSurface
を共有するため、同じものを共有しCanvas
ます。 SurfaceView
は のサブクラスであり、他の のサブクラスやそれ自体View
とは異なり、描画する独自のものがあります。View
View
Surface
また、追加の質問が 1 つあります。
- ビットマップを使用した高レベルの操作
Surface
が既にあるのに、なぜクラスが必要なのですか。できる仕事をするのにふさわしくないCanvas
状況の例を挙げてください。Canvas
Surface
android - Android の Surface と ScreenResolution
状況を説明するために、私のゲームは Android 1.5 用に開発されました。そのため、どの Android フォンでもデフォルトで最低の解像度を使用していました。それは素晴らしかったです、ゲームは速く動いていました。
これで、ゲームが Android 1.6 をサポートする必要がある scoreloop のサポートが追加されました。ゲームを実行すると、画面密度を見ずに単位次元を使用したため、すべてが小さくなっていることに気付きました。
今、私はサイズを修正しました。ゲームが少し途切れ途切れに見えることに気づきました。新しい画面解像度での再描画が問題だと思います。
SurfaceView の Canvas にゲームを描画します。どうすれば速くなりますか?drawCircle、drawLine などのデフォルト関数を使用しています。高い画面解像度は必要ないため、画面解像度を下げると役立つと思います。それが可能かどうか、または方法がわからないだけです。
または、openglで私の描画を行うことで問題も解決するかもしれません。
android - Android の部分的なアンチエイリアス
Google マップのように大きなビットマップをタイルに表示するアプリケーションを作成しています。サーバーは、スケーリング/変換されたキャンバスに描画したビットマップを送信します。このビットマップをアンチエイリアスで描画したいのですが、キャンバスでアンチエイリアスを有効にすると、ビットマップのエッジが背景 (なし/黒) と混同され、タイル間に醜い暗い線が生成されます。描画時にビットマップのエッジをアンチエイリアスしないように Android に指示する方法はありますか? または、その問題に対して他にどのような魂が存在しますか?
android - Android:SurfaceViewとZレベルの質問
最初にSurfaceViewを含み、次に、さまざまなButtonsとTextViewsを含むRelativeLayoutを含むFrameLayoutがあります。
SurfaceViewのキャンバス上に多数のビットマップを描画しており、タッチイベントとモーションイベントを介して、ユーザーがそれらをドラッグできるようにしています。
これらのビットマップは、ドラッグすると、RelativeLayout内にあるボタンなどの下を通過します。
さて、SurfaceViewの「Zレベル」、またはそれを通過するものはすべて、レイアウトの他の部分の実際のZレベルとはまったく関係がないことを理解しているのは、私の(おそらく誤っている)ことです。これは本当ですか?もしそうなら、ドラッグされたビットマップが他のビューの上に描画されるように、どうすればそれを回避できますか?または、他にどのような方法でフルスクリーンキャンバスを実装しても、ボタンなどをオーバーレイのコントロールのように機能させることはできません。
私が実際に必要としているのはアンダーレイだと思います。アンダーレイでは、タッチイベントを下のボタンなどで拾うことができます。しかし、これを実現する方法がわかりません。キャンバスを再描画するときに、背景も再描画する必要があるためです。
FrameLayout内のRelativeLayoutとSurfaceViewの順序を入れ替えて、Canvasの背景を透明にすることはできますか?もしそうなら、どのように?タッチイベントは引き続き下のボタンに「フォールスルー」しますか?
私と一緒にいてくれてありがとう、私は少しワッフルだと知っています。
android - Androidで他のビューを使用して画面に描画する
私は過去数時間、非常にばかげた質問への答えを探していました。ビュークラスを拡張し、onDrawを変更し、setContentView()をそのクラスの新しいインスタンスに設定すると、Androidでキャンバスに描画する方法を知っています。ただし、アクティビティの下部に 2 つの TextView と 2 つの EditText も必要です。 setContentView() がそのビューのみを持つように設定されている場合、これらのビューは明らかに表示されません。これらすべてを画面に表示するにはどうすればよいでしょうか。
編集:ここに私のコードがあります:(パッケージ名はandroid.physicsengineです)
そしてxml