自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 =newarraylist<bitmapdescriptor>();giflist.add(bda);giflist.add(bdb);giflist.add(bdc);//marker位置坐标latlng lld =newlatlng(39.906965,116.401394);//构造markeroptions对象markeroptions ood =newmarkeroptions().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 =newtransformation(latlng0, latlng1, latlng2);//动画执行时间mtransforma.setduration(500);//动画重复模式mtransforma.setrepeatmode(animation.repeatmode.restart);//动画重复次数mtransforma.setrepeatcount(1);//根据开发需要设置动画监听mtransforma.setanimationlistener(newanimation.animationlistener(){@overridepublicvoidonanimationstart(){}@overridepublicvoidonanimationend(){}@overridepublicvoidonanimationcancel(){}@overridepublicvoidonanimationrepeat(){}});//设置动画mmarkerc.setanimation(mtransforma);//开启动画mmarkerc.startanimation();
展示效果如图:
自v3.6.0版本起,sdk提供了加载marker时的动画效果,有如下四种效果供开发者选择:
字段 | 效果 |
---|---|
markeranimatetype.none | 无效果 |
markeranimatetype.drop | 从天上掉下 |
markeranimatetype.grow | 从地下生长 |
markeranimatetype.jump | 跳跃 |
通过markeroptions类animatetype方法设置。
示例代码如下:
markeroptions ooa =newmarkeroptions().position(lla).icon(bda);//设置掉下动画ooa.animatetype(markeranimatetype.drop);
效果如图:
上一篇
下一篇
本篇文章对您是否有帮助?