自v3.3.0版本起,SDK提供了给Marker增加帧动画的功能,通过MarkerOptions类来设置,一次传入一个Icon列表,通过period设定刷新的帧间隔。
示例代码如下:
//构造Icon列表// 初始化bitmap 信息,不用时及时 recycleBitmapDescriptor bdA = BitmapDescriptorFactory.fromResource(R.drawable.icon_marka);BitmapDescriptor bdB = BitmapDescriptorFactory.fromResource(R.drawable.icon_markb);BitmapDescriptor bdC = BitmapDescriptorFactory.fromResource(R.drawable.icon_markc);ArrayList<BitmapDescriptor> giflist = new ArrayList<BitmapDescriptor>();giflist.add(bdA);giflist.add(bdB);giflist.add(bdC);//Marker位置坐标LatLng llD = new LatLng(39.906965, 116.401394);//构造MarkerOptions对象MarkerOptions ooD = new MarkerOptions().position(llD).icons(giflist).zIndex(0).period(20);//定义刷新的帧间隔//在地图上展示包含帧动画的MarkerOverlay mMarkerD = (Marker) (mBaiduMap.addOverlay(ooD));
运行结果如下:
除了可以自定义的帧动画,Marker还支持设置旋转、缩放、平移、透明、和组合动画效果。通过Marker类setAnimation方法设置。
Transformation | 平移 |
---|---|
RotateAnimation | 旋转 |
ScaleAnimation | 缩放 |
SingleScaleAnimation | X 或 Y 轴方向单独缩放 |
AlphaAnimation | 透明 |
AnimationSet | 动画集合 |
平移动画效果的示例代码如下:
//通过LatLng列表构造Transformation对象Transformation mTransforma = new Transformation(latLng0, latLng1, latLng2);//动画执行时间mTransforma.setDuration(500);//动画重复模式mTransforma.setRepeatMode(Animation.RepeatMode.RESTART);//动画重复次数mTransforma.setRepeatCount(1);//根据开发需要设置动画监听mTransforma.setAnimationListener(new Animation.AnimationListener() {@Overridepublic void onAnimationStart() {}@Overridepublic void onAnimationEnd() {}@Overridepublic void onAnimationCancel() {}@Overridepublic void onAnimationRepeat() {}});//设置动画mMarkerC.setAnimation(mTransforma);//开启动画mMarkerC.startAnimation();
展示效果如图:
自v3.6.0版本起,SDK提供了加载Marker时的动画效果,有如下四种效果供开发者选择:
字段 | 效果 |
---|---|
MarkerAnimateType.none | 无效果 |
MarkerAnimateType.drop | 从天上掉下 |
MarkerAnimateType.grow | 从地下生长 |
MarkerAnimateType.jump | 跳跃 |
通过MarkerOptions类animateType方法设置。
示例代码如下:
MarkerOptions ooA = new MarkerOptions().position(llA).icon(bdA);//设置掉下动画ooA.animateType(MarkerAnimateType.drop);
效果如图:
上一篇
下一篇
本篇文章对您是否有帮助?