Androidの質問。 私はカスタムImageViewクラスを作りました。その中には、(キャンバスを使って)特定のピクセルに円を描画するonDrawメソッドがあります。このカスタム画像ビューを使用して画像を開くと、私が描いたサークルに焦点を当てたいと思います(現在の位置にGoogleマップがあるように、フォーカスはあなたの現在の位置に設定されています)Android - onDrawメソッドで描画した円にフォーカスを設定
答えて
マップサーバーは、Googleがタイルのカスタマイズされたセットを提供してセンターが適切に表示されるようにします。新しいバージョンは当然ベクタベースなので、ビューを描画するだけで必要な場所に集中されます。あなたはおそらく、あなたが適切に
あなたのタイルをレイアウトすることができるようには、おそらくでframeLayout
public class myMapFrameLayout extends FrameLayout {
オーバーライドonDrawまたはonDispatchDrawのいずれかを、独自のコンテナクラスを作成して必要なアプリケーションの詳細を知らなくても
あなたが必要とするx、yが画面の中央にくるようにビットマップを描画する位置を決め、whiに依存して必要な座標の空白を埋めるために必要な他のタイルを描画しますCH方法は、タイルは、同じサイズ
4 X 5
あるすべてその周囲のタイルと実際の画面より大きい仮想スクリーンの思いを中心に取得するために移動されましたXは、ディスプレイの大きさであり、あなたがタイルを移動するためにどの方法を把握する必要がある現在のタイル、および他のタイル1,2,3,4,5を表していると仮定すると、
、 6,7、または8の場合は、移動による空きスペースを埋める必要があります
タイル+ xを0,0から描画する必要がある場合は、タイル4が必要で、0から描画+ yは2の一部を意味し、両方とも1,2,4がすべて必要なので、組み合わせを見つけ出し、必要なタイルをロードし、それぞれの描画位置を把握します。それは、センターを表示した新しい仮想タイルを表示します。
これは、クライアント側のビットマップ描画方法で考えているほど効率的です。UPDATE
あなたのコメントは、あなたがこの問題のビットであることを行っている唯一の非常に大規模なイメージを持って示しているので
もしあなたがのサイズよりエッジに近いものとして必要なY、X、表示
なし以下の画面は500×500だったし、あなたのイメージだった場合、あなたはまだあなたがそれを必要な場所だけ画面を測定し、
ので中央に、ターゲットのxとyとのビットマップを描画した画像を描画することができます5000x5000であり、中心は位置x = 1000y = 1000にあり、次に
drawBitmap(Bitmap bitmap, Rect src, RectF dst, Paint paint)
ソース矩形を1000-250,1000-250,500,500あろうとdst矩形が0,0,500,500
250は、中心Xと表示の中心Yであろう場合、1000がある対象X/y座標、500は表示サイズです。
ここでも、あなたは無限のマップタイル代わり
あなたがlayoutparamsを使用して、あなたのでframeLayoutを大型化だけでキャンバスを翻訳可能性を持っていけないので、あなたがあなたの画面に空白ポリゴンを持ってしようとしている縁であるターゲットとxとyはキャンバスをx、yの中心に合わせるために、より実績のある類似した計算を使用する必要があります。
イメージが実際には大量のメモリを使用しています大きな
返事をありがとう。私の例では、1つのイメージ(1つのマップタイルを意味します)があります。そして、この1画像/タイルは画面サイズよりも大きい。だから現在、私は左右にスクロールして、私の位置のドットを見つけるために上下に動かさなければならない。 –
x、yが左上隅にあるなら、あまりうまく動かないだろう。あなたがそれを行うことができる唯一のことは、私が想定しているイメージを過大にしていることです。上記の答えを変更してください。 – Idistic
アドバイスをいただきありがとうございます。私はこの問題を回避しようとするか、それを解決するための新しい解決策を考えます –
- 1. ondraw関数の外に描画パスandroid
- 2. キャンバスandroidのonDraw()メソッドでBitmapを高速に描画する方法
- 3. android-onDraw()メソッド
- 4. Android:描画同心円
- 5. onDrawに4行を描画するには? - android
- 6. Androidでプログラマチックに描画されたEdittextのフォーカスを取得
- 7. Android:Canvasで描画するためにonDraw()またはrun()をオーバーライドします
- 8. Android Camera2 - 円のフォーカスエリアを描画
- 9. ユーザーが指定した画像に円/四角形を描く
- 10. C#WPFで描画された円を定位置に移動
- 11. Androidのマップ描画円ラジオはSQLiteデータベース
- 12. Androidでのフォーカスの設定
- 13. 私は正常にビューを拡張し、onDraw()メソッド 私が(ビューのonDrawでシンプルなグラフィックスを描画することができます)メソッドをオーバーライドしている
- 14. Androidで円を描いて円を描く
- 15. フォーカスを設定EditText android
- 16. onDrawメソッドの外にあるAndroidグラフィック
- 17. Androidで説明して円を描く
- 18. 円でテキストを描画するには?
- 19. Android onDrawメソッドの遅延を追加
- 20. Android - 円柱を描く
- 21. OnDraw()が呼び出されず、surfaceViewに何も描画されません - Android
- 22. Androidで3D円グラフを描画する方法
- 23. TextViewのonDrawはグラフィカルな描画をサポートしていますか?
- 24. AndroidでonDrawメソッドがどのように機能しますか?
- 25. 円を円として描いたリーフレット
- 26. Android - カスタム描画可能な背景をClickSpanに設定
- 27. onDrawの描画をスムーズにする方法
- 28. JFrameへの円の描画
- 29. 体系図の描画円
- 30. Pygameの半円描画
フォーカスを視覚的に表現したい場合は、実際にフォーカスをImageViewに設定します(wあなたがそれを扱わない限り、何も視覚的にしないでしょうか? – Idistic
イメージビューが表示されていますが、私のサークルを画面の中央に(そしてフォーカスを持って)置いて欲しいです。私のイメージは大きく、スクリーンから外れます(スクロールバーが上下左右に移動します) –
"フォーカス"を与えても、イメージの位置を変えることはできません。現在イメージが(パンされて)どこに変換されているかにかかわらず、円をディスプレイの中央に維持するように思えますか? – Idistic