我想要实现一个标记animation,如GIFanimation。 我有两个应该同时闪烁的图像。 我没有发现任何可以实现这一点在Android中。 我试图做的是,创build一个每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()
来影响您的更改。
此外,由于您的位图不会改变,我build议caching您的两个BitmapDescriptor
对象,而不是每遍都重新创build它们。