还是先上个图吧:

cluster.gif

说下实现的原理,首先这个定位小蓝点是由两张图片组成的,最底层的一张白色圆形图片以及上一层的蓝色圆形图片,只要不停的对蓝色图片进行透明度动画操作就可以实现这个效果了。

看下高德的API

类 Animation

java.lang.Object

com.amap.api.maps.model.animation.Animation

直接已知子类:

[AlphaAnimation](http://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/com/amap/api/maps/model/animation/AlphaAnimation.html), [AnimationSet](http://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/com/amap/api/maps/model/animation/AnimationSet.html), [RotateAnimation](http://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/com/amap/api/maps/model/animation/RotateAnimation.html), [ScaleAnimation](http://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/com/amap/api/maps/model/animation/ScaleAnimation.html), [TranslateAnimation](http://a.amap.com/lbs/static/unzip/Android_Map_Doc/3D/com/amap/api/maps/model/animation/TranslateAnimation.html)

可以看出来,其实跟android的一样,但是有个坑爹就是setRepeatCount(); setRepeatMode();这两个方法居然没有。。这就有点尴尬了,那我们还是从头来捋捋。

1.实现定位蓝点自定义图标

//如果marker没有新建就新建,新建了就直接设定位置

if (mylocation == null) {

//新建一个marker对象

MarkerOptions markerOptions1 = new MarkerOptions();

markerOptions1.icon(big); //设置底图图片

markerOptions1.position(new LatLng(location.getLatitude(), location.getLongitude())); //设置位置

bigPosition = aMap.addMarker(markerOptions1); //地图添加marker

MarkerOptions markerOptions = new MarkerOptions();

markerOptions.icon(small);//设置上层图片

markerOptions.position(new LatLng(location.getLatitude(), location.getLongitude()));

mylocation = aMap.addMarker(markerOptions);

} else {

bigPosition.setPosition(new LatLng(location.getLatitude(), location.getLongitude()));

mylocation.setPosition(new LatLng(location.getLatitude(), location.getLongitude()));

}

2.设置动画

AlphaAnimation alpha = new AlphaAnimation(1, 0.2f);//新建透明度动画

alpha.setDuration(1500);//设置动画持续时间

mylocation.setAnimation(alpha);//图片设置动画

mylocation.startAnimation();//开始动画

mylocation.setAnimationListener(new Animation.AnimationListener() {

@Override

public void onAnimationStart() {

}

@Override

public void onAnimationEnd() {

AlphaAnimation alpha = new AlphaAnimation(0.2f, 1);

alpha.setDuration(1500);

mylocation.setAnimation(alpha);

mylocation.startAnimation();

}

});

现在就实现了一次呼吸灯的效果。

3.实现持续的呼吸灯效果

Timer timer = new Timer();

TimerTask timerTask = new TimerTask() {

@Override

public void run() {

anim();

}

};

timer.schedule(timerTask, 0, 3000);

其实就是用一个计时器反复的播放这个动画罢了,至此,呼吸灯效果就算实现好了。

android呼吸灯动画,Android高德地图自定义定位蓝点实现呼吸灯功能相关推荐

  1. Android中配置高德地图和定位蓝点

    最近一直在学习android,学到地图这里,遇到的坑也不少,所以就把它分享出来,一和大家一起学习,二为以后写项目看, 一.获取key 1.创建应用 首先,您得上(高德地图开放平台官网)注册一个账号,当 ...

  2. 高德地图去掉定位按钮_高德地图自定义定位按钮及点击事件

    最近使用了一下高德地图,使用期间将出现的问题记录一下.文中出现不对的地方,悉听各路大神指正.2018年11月23日15:59:46 1.首先我们初始化map控制对象aMap .if (aMap ==n ...

  3. Android 高德地图自定义线路规划选择方案之后按照方案进行导航

    Android 高德地图自定义线路规划选择方案之后按照方案进行导航 因为我这边导航需求的问题,导致我这边不能使用高德地图官方的线路规划和导航.所以我这边线路规划和导航界面都是根据高德地图那边给的api ...

  4. Android高德地图自定义Mark并实现聚合效果

    Android高德地图自定义Mark并实现聚合效果 起因:公司本来项目里面用到了高德地图,然后最近老板看见别人的APP里面有个聚合的这个功能,老板:"这个效果能不能实现,我也要!" ...

  5. Android高德地图自定义Markers的例子

    下文为各位重点介绍关于Android高德地图自定义Markers的例子,希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法. 之前的博客里说了地图的嵌入和定位,今天就说说在地 ...

  6. Android 高德地图 自定义Location小蓝点

    设置自定义定位蓝点 自定义Location小蓝点,自定义功能 private static final int STROKE_COLOR = Color.argb(180, 3, 145, 255); ...

  7. Android Studio之高德地图实现定位和3D地图显示

    在应用开发中,地图开发是经常需要使用的"组件",国内比较出名的是就是百度地图和高德地图. 此博客讲的是高德地图实现定位和3D地图显示,并标注相应位置,话不多说,先看看效果,在上代码 ...

  8. 高德地图聚合android,GitHub - lingyanluoxue/android-togetherMap: 实现高德地图的marker聚合功能...

    android-togetherMap 本文我将讲解一下我最近实现的高德地图Marker的聚合功能.在项目开发中需要使用到地图Marker的聚合功能,但是高德地图并没有实现对Marker的聚合功能,所 ...

  9. android高德地图默认当前位置,【报Bug】1.9.2 android 高德地图无法定位到当前位置...

    详细问题描述 (DCloud产品不会有明显的bug,所以你遇到的问题大都是在特定环境下才能重现的问题,请仔细描述你的环境和重现方式,否则DCloud很难排查解决你的问题) [内容] 1.9.2版本 a ...

最新文章

  1. Metasploit resource命令技巧
  2. Nosql数据库之mongodb c++使用实例
  3. java图片预览上传_Java实现图片上传预览 (使用ajax提交)
  4. primefaces_通过OmniFaces缓存组件以编程方式缓存PrimeFaces图表
  5. jsp 导入java类_JSP页面导入问题。类文件放在WEB-INF / classes中的包中
  6. ORACLE计算表引占用空间大小
  7. vue 子页面调用父页面的参数_Flutter子组件调用父组件方法修改父组件参数
  8. 如何不让tomcat在启动时弹窗_Tomcat 在 Spring Boot 中是如何启动的
  9. Linux下virtualenv与virtualenvwrapper详解
  10. xshell过期/安装教程
  11. 服务器lsass系统错误,lsass.exe-系统错误,终结点格式无效 windows2003服务器出错
  12. Django项目实战——12—(Docker和FastDFS上传和下载文件、浏览器下载并渲染图片(nginx)、录入商品数据和图片数据、首页广告)
  13. 这些一夜爆火的国产软件,却一度被大众误以为是外国佬研发的。。。
  14. 找出只包含1的最大矩形c语言,一些简单的编程练习题
  15. 一阶导数和二阶导数的意义
  16. 网站seo优化,网站SEO优化方案
  17. mysql 表数据备份和恢复_mysql 数据备份与恢复
  18. 在自动UNDO管理情况下,如何手工增加undo段
  19. MySQL 09 DQL → select 初识查询数据和别名的使用
  20. Vue select的使用以及select设置默认选中,element select联动不能选择问题

热门文章

  1. 系统异常和不稳定的原因总结
  2. “远程服务器返回错误: (404) 未找到”的正确解决方法
  3. xpath定位中starts-with、contains和text()的用法
  4. hashtable、hashmap、ConcurrentHashMap、treemap的区别
  5. 修改新版am335x支持1G主频的方法[来自A Xian调试记录]
  6. Input.GetAxis
  7. azure java_Azure File服务(5): Java开发
  8. java编程思想 入门_java编程思想学习(基础)
  9. java对象的初始化顺序_Java对象初始化顺序
  10. mysql.server 文件是什么_mysql的启动脚本mysql.server及示例配置文件