私は検索効果のためにレーダーのようなアニメーションを提供しようとしています。私はそれのためのいくつかの第三者図書館を見つけたが、理解することは難しい。それを達成するための簡単な方法です。Google Mapの中心にレーダーアニメーションを作成するには?
答えて
このコードを追加すると、使用しているアクティビティーやフラグメントをマップできます。私は知らない。
Marker marker = mMap.addMarker(new MarkerOptions()
.position(new LatLng(userSourceLat, userSourceLng))
.title("No match Found")
.snippet("Searching for Match"));
mapRadar.setShowCircles(true);
if (mapRadar!= null) mapRadar.startAnimation();
は今、以下
public class RadarView extends View {
private final String LOG = "RadarView";
private final int POINT_ARRAY_SIZE = 25;
float alpha = 0;
Point latestPoint[] = new Point[POINT_ARRAY_SIZE];
Paint latestPaint[] = new Paint[POINT_ARRAY_SIZE];
android.os.Handler mHandler = new android.os.Handler();
private int fps = 100;
Runnable mTick = new Runnable() {
@Override
public void run() {
invalidate();
mHandler.postDelayed(this, 1000/fps);
}
};
private boolean showCircles = true;
public RadarView(Context context) {
this(context, null);
}
public RadarView(Context context, AttributeSet attrs) {
this(context, attrs, 0);
}
public RadarView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
Paint localPaint = new Paint();
localPaint.setColor(getResources().getColor(R.color.colorPrimary));
localPaint.setAntiAlias(true);
localPaint.setStyle(Paint.Style.STROKE);
localPaint.setStrokeWidth(1.0F);
localPaint.setAlpha(0);
int alpha_step = 255/POINT_ARRAY_SIZE;
for (int i = 0; i < latestPaint.length; i++) {
latestPaint[i] = new Paint(localPaint);
latestPaint[i].setAlpha(255 - (i * alpha_step));
}
}
public void startAnimation() {
mHandler.removeCallbacks(mTick);
mHandler.post(mTick);
}
public void stopAnimation() {
mHandler.removeCallbacks(mTick);
}
public int getFrameRate() {
return this.fps;
}
public void setFrameRate(int fps) {
this.fps = fps;
}
;
public void setShowCircles(boolean showCircles) {
this.showCircles = showCircles;
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
int width = getWidth();
int height = getHeight();
int r = Math.min(width, height);
//canvas.drawRect(0, 0, getWidth(), getHeight(), localPaint);
int i = r/2;
int j = i - 1;
Paint localPaint = latestPaint[0]; // GREEN
if (showCircles) {
canvas.drawCircle(i, i, j, localPaint);
canvas.drawCircle(i, i, j, localPaint);
canvas.drawCircle(i, i, j * 3/4, localPaint);
canvas.drawCircle(i, i, j >> 1, localPaint);
canvas.drawCircle(i, i, j >> 2, localPaint);
}
alpha -= 0.5;
if (alpha < -360) alpha = 0;
double angle = Math.toRadians(alpha);
int offsetX = (int) (i + (float) (i * Math.cos(angle)));
int offsetY = (int) (i - (float) (i * Math.sin(angle)));
latestPoint[0] = new Point(offsetX, offsetY);
for (int x = POINT_ARRAY_SIZE - 1; x > 0; x--) {
latestPoint[x] = latestPoint[x - 1];
}
int lines = 0;
for (int x = 0; x < POINT_ARRAY_SIZE; x++) {
Point point = latestPoint[x];
if (point != null) {
canvas.drawLine(i, i, point.x, point.y, latestPaint[x]);
}
}
lines = 0;
for (Point p : latestPoint) if (p != null) lines++;
boolean debug = false;
if (debug) {
StringBuilder sb = new StringBuilder(" >> ");
for (Point p : latestPoint) {
if (p != null) sb.append(" (" + p.x + "x" + p.y + ")");
}
Log.d(LOG, sb.toString());
// " - R:" + r + ", i=" + i +
// " - Size: " + width + "x" + height +
// " - Angle: " + angle +
// " - Offset: " + offsetX + "," + offsetY);
}
}
}
注アニメーションのための私達のカスタムビュークラスである:あなたがこれを使用することができ、マーカーを置く場所の内部今
private RadarView mapRadar;
どのような理由であなたはそのアニメーションが必要です。しかし、私はそれを使用します。デフォルトでは、マーカーは地図の中央に配置されます。私はrelativelayout内にマップを配置し、また、RelativeLayoutの中心にraderViewを配置します。
が今ここにあなたのXMLがある
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_above="@+id/bootomLayout">
<fragment
android:id="@+id/mapView"
class="com.google.android.gms.maps.SupportMapFragment"
android:layout_width="match_parent"
android:layout_height="match_parent" />
<your.packagename.RadarView
android:id="@+id/radarView"
android:layout_width="240dp"
android:layout_height="240dp"
android:layout_centerInParent="true"
/>
私は最初に試してみましょう –
魅力のようなその仕事 –
実は私は 'private MapRadar mapRadar;'のmapRadarをどこで使用していますか? – statosdotcom
- 1. Google Mapの中心点を取得するには?
- 2. Javascript Google map api V3の中心に位置するfitbound
- 3. Google Mapがマーカを中心にしていません
- 4. Google Mapの緯度と経度の中心を取得
- 5. ピンを使ってGoogle Map Apiポリラインを作成するには?
- 6. Google MAP API v3:2つの地点間の中心を移動する
- 7. Googleマップ - ユーザーの場所を中心に
- 8. WPFでコラージュを作成 - 固定位置、中心を中心に回転
- 9. forループの中心にイメージを作成する#
- 10. ブートストラップコンテナ内に画像の中心ブロックを作成する
- 11. 中心にパラメータを持つNxN行列を作成する
- 12. Googleマップのポリラインの中心(重心?)
- 13. マーカーを中心に、Google maps api
- 14. 制約レイアウトガイドラインを中心に作成する
- 15. Googleマップの中心をiPhoneの画面の中央にする方法は?
- 16. html5の中心ピボットを中心にコンテンツを回転する
- 17. ロード中にフリーズするのを防ぐ方法google map
- 18. divを中心にする
- 19. 静的なGoogle Maps API用にカスタマイズ可能な中心点を作成することはできますか?
- 20. 中心座標からバウンディングボックスを作成
- 21. ボタンを中心に2x2ボタングリッドを作成しますか?
- 22. Google Mapジオロケーションがドラッグまたはクリック中に中央に移動し続ける
- 23. Googleマップは、中心を取得することは中心にありません。 Android
- 24. センターGoogleマップの中心にあるヘッダーブロックの下にあるウェブページ
- 25. Google Maps API V3の地図を中心にズームする
- 26. 画面の中心を中心にカメラを回旋する
- 27. Javafxの中心を中心にオブジェクトを回転する
- 28. ビューの中心にビューの中心を設定する
- 29. Map [key、value]のkey-nameにMongoDbインデックスを作成するには?
- 30. 私のナビゲーションバーの中心を作成する
あなたの努力を表示します。 – statosdotcom
私はちょうどGoogleにしようとしましたが、何も得られません –