Google Map API ANDROID中标记的GIF类型动画

桑迪普R

我想实现一个标记动画,例如GIF动画。我得到了两个应该同时闪烁的图像。我没有发现任何可以在android中实现的功能。我想做的是,创建一个每1秒运行一次的处理程序,并且我试图设置标记图标。但它不起作用。请指引我正确的方向。

到目前为止,我的代码如下。

  Handler handler = new Handler();
  Boolean marker_color_bool = true;

//adding marker and sending the marker instance to marker_animation() method where handler is called.

MarkerOptions marker = new MarkerOptions()
                .title(delivery_center_name)
                .snippet("This is the " + delivery_center_name + " location")
                .position(location)
                .icon(BitmapDescriptorFactory.fromResource(R.drawable.red_marker));

        google_map.addMarker(marker);

        marker_animation(marker);

marker_animation()方法

 private final int ONE_SECONDS = 1000;
public void marker_animation(final MarkerOptions marker ) {

    handler.postDelayed(new Runnable() {
        public void run() {

            Log.e("running",""+marker_color_bool);

            if(marker_color_bool == true)
            {

                marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.green_marker));
                marker_color_bool = false;
            }
            else
            {
                marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.red_marker));
                marker_color_bool = true;
            }

            handler.postDelayed(this, ONE_SECONDS);
        }
    }, ONE_SECONDS);
}

这种方法行不通..请帮助我我做错了。

常用软件

请帮助我我做错了

您正在修改不再使用的对象。一旦addMarker()调用,该MarkerOptions对象就没有更多的意义了,但这就是您要通过postDelayed()逻辑修改的内容

(顺便说一句,你并不需要Handler,因为postDelayed()可以用任意View

addMarker()返回Marker您将需要通过处理该Marker更改来影响您的更改setIcon()

另外,由于您的位图没有变化,因此建议您缓存两个BitmapDescriptor对象,而不要在每次通过时都重新创建它们。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章