問題タブ [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 - マトリックスの使用と新しいビットマップの作成
私はアンドロイドゲームに取り組んでおり、可能な限り速度を最適化しようとしています。キャンバスに描画するとき、キャンバスにビットマップとマトリックスを与えてonDraw中に画像を拡大縮小するよりも、onDrawの前に新しいビットマップを作成する方が速いかどうか疑問に思っていました。
android - キャンバスを塗りつぶすように画像を設定する方法
アスペクト比を維持しながら、キャンバスの背景を埋めるためにpng画像を設定しようとしています。まず、ビットマップに変換します。次に、Canvas クラスの setBitmap メソッドを使用して背景を設定します。
http://developer.android.com/reference/android/graphics/Canvas.html#Canvas(android.graphics.Bitmap )
しかし、この拡張 View クラスを呼び出すアクティビティに移動すると、アプリケーションが予期せず停止したというエラーが表示されます。また、Canvas および Bitmap クラスの他の関数をいくつか試してみましたが、何も機能していないようです。
これを行う最善の方法は何ですか?Android開発者サイトで、画像をキャンバスにして他の画像をその中に描画できるように設定する方法があることを読みましたが、その方法を理解できませんでした。
ありがとう!
android - アンドロイドキャンバスを使用して、左上と右上の角だけが丸い長方形を描くにはどうすればよいですか?
4つの角がすべて丸い長方形の関数を見つけましたが、上の2つの角だけを丸くしたいと思います。私に何ができる?
android - ANDROID-MapView
誰かが私が構築しようとしているmapviewimに関するいくつかのことを手伝ってくれませんか。キャンバスを取得してビットマップを描画するレンダラーがあります。ビューを作成し、コンストラクターで次を作成します。
onDrawメソッドで私はこれを持っています:
今、私はパンとズームを実装したいと思います(現在、保存されたタイルなしで動作しています)これが私のonTouchです:
mScaleDetector.onTouchEvent(ev);
これが私が望むものと私が抱えている問題です:
- パンするとき、距離をピクセル単位で計算したいので、レンダラーが画像を再度レンダリングするときにそれを伝えることができます。これはどのように達成されますか?ACTION_DOWNの座標を記憶し、ACTION_UPの新しい座標と比較することによって?
- パンが完了したら(そして画像が再レンダリングされたら)、キャンバス(画像)を元の位置に戻したいと思います。現在、ペインのままです(canvas.translateのため?)
- ズームジェスチャを処理するにはどうすればよいですか?このコードを使用すると、指でズームアウトすると、画像が左上隅に向かって「ドラッグ」されます...
私はアンドロイド(およびジャバ)で新しいので、どんな助けも高く評価されます。
android - lockCanvas() が遅いのはなぜですか?
SurfaceView サブクラスを実装しており、別のスレッドを実行して SurfaceHolders Canvas に描画します。への呼び出しの前後の時間を測定していますがlockCanvas()
、約 70ms から 100ms になっています。なぜ私がこんなに高いタイミングを得ているのか、誰かが私に指摘できますか? コードの関連部分は次のとおりです。
android - Android キャンバスの回転: *to* x 度ではなく *by* x 度回転する必要があります
Canvas の回転メソッドのドキュメントには、度パラメーターは「回転する量 (度単位)」であると記載されています。しかし、私の経験では、これは誤解を招くものです。たとえば、ビットマップが正規の直立方向 (つまり、12:00 の theta = 0) にあるときに、rotate(45) を呼び出すと、ビットマップは 0 に対して 45 度忠実に回転します。を回転させても(45)、画像は動かない[ように見える]。次に、rotate(-45) を呼び出すと、ビットマップは元の方向に戻りませんが、代わりに 0 に対して -45 度回転します。つまり、度パラメーターは絶対です (「45 度に回転」ドキュメントが示すように、相対的ではありません(「45度回転」)。これはまさに私が望んでいないことです。
特定の方向から、ビットマップを+/- x 度回転できるようにしたいと考えています。ここで、+ はもちろん時計回りの回転です。これを偽造する 1 つの方法は、次のローテーションのためにローテーションを「新しい 0」にすることです (つまり、実質的に 12:00 を占めます)。私の質問は次のとおりです。これを行うにはどうすればよいですか、または、私が望むことを達成するためのより良い方法はありますか?
どうもありがとう。
android - 複数の正しい図面をクリックした後にアクションを実行するにはどうすればよいですか?
以下のようなアプリケーションを開発しようとしています。
現在、キャンバスに円が表示されるたびに、最近表示された円をクリックすると、ユーザーは次のレベルに進みます。ユーザーが最近のもの以外をクリックすると、アプリケーションが閉じます。
今私の要件は、キャンバス上の異なる場所に毎回 2 つの円を描画したいということです。ユーザーは最近表示された 2 つの円をクリックする必要があります。これらの 2 つの円をクリックした後、クリックが正しいか間違っているかに応じて、アクションのみを実行する必要があります。しかし、アクションは 1 つの円をクリックした直後に実行されています。しかし、両方、つまり2つの円のクリックが完了するまでコントロールを待機させてから、それに応じて動作させたいと思います。
この点で誰も助けることができますか....?お願いします。よろしくお願いします...!
android - Android キャンバスの背景
私のビューの背景には小さな画像がたくさんあります。また、各画像の位置は画面の解像度によって異なります。また、onToch イベント後に動的に再描画される他のオブジェクトもあります。バックグラウンドなしで正常に動作しますが、onDraw() で描画しようとすると KeyDispatchingTimedOut エラーが発生します。アプリを最初に起動するときに単一のビットマップで背景を構成するにはどうすればよいですか? または他のより良い解決策がありますか?
android - Android - ディザリング/アンチエイリアシングなしでテキストをスケーリングする方法 - ピクセル化されたテキストが欲しい
実験のために、キャンバスにピクセル化されたテキストを描きたいと思います。
これは私がこれまでに持っているものです:
これは私が望むサイズを実現しますが、テキストはアンチエイリアス処理され、ディザリングされており、これは私が望むものではありません.
私が得た最も近いものは、これを行うことです:
水平方向にテキストをスケーリングしますが、残念ながら text.setTextScaleY-functuion はありません...
何か案は?