5

GoogleMap マーカーをフェードインおよびフェードアウトするにはどうすればよいでしょうか?

これは、マップにマーカーを追加する方法です。

    marker = map.addMarker(new MarkerOptions()
            .position(point)
            .title(title)
            .snippet(text)
            .icon(BitmapDescriptorFactory.fromResource(R.drawable.marker))
    );
4

4 に答える 4

3

Google Play サービス 4.0 以降では、数ミリ秒ごとの投稿Marker.setAlphaと組み合わせて使用​​できます。HandlerRunnable

コードは、ここでの私の答えに似ています画面の上部から Android マップ V2 の場所にマーカーをゆっくりとドロップします。代わりsetAlphasetPosition、あなたは家に帰る途中です。

于 2013-11-03T14:17:14.100 に答える
0

マーカーを追加するときのフェードイン専用のより完全なソリューションを次に示します。注意すべきことはrequestNumberです。これは、マップを移動しながらアイテムを読み込んでいる場合に便利です。サービス呼び出しごとにインクリメントするか、不要な場合は削除してください。

public void fadeInMarker(Activity activity,final  GoogleMap map, final MarkerOptions markerOptions, final long duration,final int requestNumber){

        activity.runOnUiThread(new Runnable() {
            @Override
            public void run() {

                if (currentRequestNumber != requestNumber){
                    return;
                }

                markerOptions.alpha(0);
                final Marker marker = map.addMarker(markerOptions);
                final AccelerateInterpolator accelartor = new AccelerateInterpolator();

                final Long startTime = SystemClock.uptimeMillis();

                final Handler handler = new Handler();
                handler.post(new Runnable() {
                    @Override
                    public void run() {

                        float diff = SystemClock.uptimeMillis() - startTime;
                        float alpha = accelartor.getInterpolation(diff / duration);
                        if (alpha < 1) {
                            handler.postDelayed(this, 10);
                        }
                        else{
                            alpha = 1;
                        }

                        if (currentRequestNumber == requestNumber){
                            marker.setAlpha(alpha);
                        }
                    }
                });
            }
        });


    }
于 2016-12-07T12:21:24.597 に答える