問題タブ [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 - Android でキャンバスをスムーズにスクロールする
私はAndroidが初めてです。
ビューの OnDraw(Canvas canvas) メソッド内の Canvas にビットマップ、線、および図形を描画しています。ユーザーのドラッグに応じてスムーズなスクロールを実装する方法についてのヘルプを探しています。検索しましたが、これに役立つチュートリアルは見つかりませんでした。
Canvas の参照は、Canvas がビットマップ (たとえば bmpBuffer と呼ばれる) から構築されている場合、Canvas に描画されるものはすべて bmpBuffer にも描画されると言っているようです。bmpBuffer を使用してスクロールを実装することは可能でしょうか...おそらく一度に数ピクセルずつシフトされたキャンバスにコピーして戻しますか? しかし、Canvas.drawBitmap を使用して bmpBuffer を Canvas に描画し、数ピクセルずらして戻すと、bmpBuffer は破損しませんか? したがって、bmpBuffer を bmpBuffer2 にコピーしてから、bmpBuffer2 を Canvas に戻す必要があります。
より簡単なアプローチは、線、形状などをバッファ Bitmap に直接描画し、そのバッファを (シフトして) Canvas に描画することですが、私が見ることができる限り、さまざまなメソッド: drawLine()、drawShape()などは、ビットマップへの描画には使用できません...キャンバスにのみ使用できます。
キャンバスを2枚いただけますか?そのうちの 1 つはバッファ ビットマップから構築され、単純に線や形状などをプロットするために使用されます。その後、バッファ ビットマップはビューに表示するために他のキャンバスに描画されますか?
どんなアドバイスでも歓迎します!
ここ (および他の Web サイト) での同様の質問への回答は、「ブリッティング」に言及しています。概念は理解できますが、Android ドキュメントで「blit」または「bitblt」について何も見つかりません。Canvas.drawBitmap と Bitmap.Copy は Android の同等物ですか?
android - Android:スクロールが終了したことを検出する方法
GestureDetector.SimpleOnGestureListener の onScroll メソッドを使用して、キャンバス上の大きなビットマップをスクロールしています。スクロールが終了したら、ユーザーがさらにスクロールしたい場合に備えてビットマップを再描画したい...ビットマップの端から外れたが、スクロールがいつ終了したかを検出する方法がわからない(ユーザーが指を離した)画面から)。
e2.getAction() は常に値 2 を返すように見えるため、これは役に立ちません。e2.getPressure は、圧力が約 0.13 に低下するように見える最後の onScroll 呼び出しまで、かなり一定の値 (約 0.25) を返すようです。この圧力の低下は検出できたと思いますが、絶対確実というわけではありません。
もっと良い方法があるに違いありません: 誰か助けてくれませんか?
android - キャンバス上の画像からJPEGファイルへ
キャンバスに2D画像を描いています。
キャンバスに表示されている画像をJPEGファイルに保存したいのですが、どうすればよいですか?
android - Android View.onDraw() には常にクリーンな Canvas があります
アニメを描いてみました。そのために、View を拡張し、onDraw() メソッドをオーバーライドしました。私が期待するのは、 onDraw() が呼び出されるたびに、キャンバスはそのままの状態になり、それをクリアするか、その一部を単に描画するかを選択できることです (これは、SurfaceView を使用したときにどのように機能したかです) )しかし、キャンバスが戻ってくるたびに、すでにクリアされています。クリアできない方法ってありますか?または、以前の状態をビットマップに保存して、そのビットマップを描画してからその上に描画できるようにすることもできますか?
java - Android Canvas での複合操作
私は Android 開発を始めたばかりで、JavaScript/HTML の世界から来たので、現在 Android SDK の可能性を調査しています。
HTML 5 キャンバスは複合操作をサポートしています (こちらを参照)。
これは Android Canvas で可能ですか? Canvas クラスの API をスキャンしましたが、有用なものが見つかりませんでした。少なくとも「source-in」または(これが不可能な場合は)「source-atop」という複合操作が必要です。
android - Androidで斜めに(逆さまなど)テキストを描画する
Androidでカスタム時計ビューを作成しようとしています。画像http://twitpic.com/1devk7を参照してください
これまで、時間と時間のマーカーを描画するために、Canvas.rotateメソッドを使用して目的の効果を取得してきました。ただし、時計の下半分(たとえば、6または9?)の数字は、描かれる角度が原因で解釈が難しいことに注意してください。
drawTextを使用する場合、onDrawメソッドが終了したときにすべてのテキストが直立して表示されるように、45/90/180度でテキストを描画することはできますか?
android - Androidのペイント/キャンバスの問題。滑らかな曲線を描く
Androidでタッチスクリーン上で指で描くときに、ドットや円の代わりに滑らかな曲線を取得するにはどうすればよいですか?私は次のコードを使用しています-
android - Android Canvas.drawText
ビューがあり、 onDraw(Canvas canvas) メソッドで Canvas オブジェクトを使用して描画しています。私のコードは次のとおりです。
問題は、テキストが背景を通して表示されないことです。何が間違っていますか? canvas.drawPaint(paint) と paint.setColor(android.R.color.black) を削除すると、画面にテキストが表示されます.....
android - Canvasに描画されるテキスト幅の測定(Android)
描画に使用されたペイントに従って、drawText()メソッドを使用してAndroidキャンバスに描画されるテキストの幅(ピクセル単位)を返すメソッドはありますか?
android - lockCanvas とはどういう意味ですか (精巧)
私はAndroidでグラフィックを描くようになりました。世の中にはたくさんのサンプル アプリケーションがありますが、私がいつも見ているのは lockCanvas です。私は本当にそれを理解していないので、誰かがそれをより詳しく説明できますか?また、将来のプログラミングを理解することが重要だと思うので?
例:
これは私が今持っているものです。これを正しく解釈するにはどうすればよいでしょうか。同期は何をしますか? キャンバス オブジェクトを getHolder と lockCanvas に割り当てることが重要なのはなぜですか?
この部分も紛らわしいです:
なぜこれが必要なのですか?もっと詳しい説明が本当に必要です。:)