本文介绍了在Google地图v2中动画标记的旋转的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

限时删除!!

我正在使用谷歌地图v2。
我在地图上有一个标记,这个标记每次都会改变旋转。
我想让制作者的旋转动画顺畅。
任何人都可以请求帮助解决方案

$> 静态public void rotateMarker(final Marker marker ,final float toRotation,GoogleMap map){
final Handler handler = new Handler();
final long start = SystemClock.uptimeMillis();
final float startRotation = marker.getRotation();
最终持续时间= 1555;

final插值器插值器=新的LinearInterpolator();

handler.post(new Runnable(){
@Override
public void run(){
long elapsed = SystemClock.uptimeMillis() - start;
float t = interpolator.getInterpolation((float)elapsed / duration);

float rot = t * toRotation +(1 -t)* startRotation;

标记。 setRotation(-rot> 180?rot / 2:rot);
if(t // 16ms后再次发布
handler.postDelayed(this,16) ;
}
}
});
}

我设法做到了:)

i am using google maps v2.i have a marker on map, this marker changes rotation every while.I want to animate the rotation of my maker to rotate smoothly.Can anyone help please

解决方案
static public void rotateMarker(final Marker marker, final float toRotation, GoogleMap map) {
    final Handler handler = new Handler();
    final long start = SystemClock.uptimeMillis();
    final float startRotation = marker.getRotation();
    final long duration = 1555;

    final Interpolator interpolator = new LinearInterpolator();

    handler.post(new Runnable() {
        @Override
        public void run() {
            long elapsed = SystemClock.uptimeMillis() - start;
            float t = interpolator.getInterpolation((float) elapsed / duration);

            float rot = t * toRotation + (1 -t) * startRotation;

            marker.setRotation(-rot > 180 ? rot/2 : rot);
            if (t < 1.0) {
                // Post again 16ms later.
                handler.postDelayed(this, 16);
            }
        }
    });
}

i have managed to do it :)

这篇关于在Google地图v2中动画标记的旋转的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

1403页,肝出来的..

09-06 07:07