Android高德之旅(7)绘制点标记

废话

本系列第7篇,终于讲到了绘制。说到吃饭...呸,说到绘制,这在地图应用中是非常重要的一部分,很多时候我们集成地图SDK时,都不可能仅仅使用默认地图元素,在默认元素不能满足需求时,绘制就派上了用场。这篇文章来记录下最简单的绘制点标记。

Marker和InfoWindow

点标记功能包含两大部分,一部分是点(俗称 Marker)、另一部分是浮于点上方的信息窗体(俗称 InfoWindow)。SDK 对 Marker 和 InfoWindow 封装了大量的触发事件,例如点击事件、长按事件、拖拽事件。

(1)添加一个marker

LatLng latLng = new LatLng(39.906901,116.397972);
MarkerOptions markerOptions = new MarkerOptions().position(latLng)
        .title("北京")
        .snippet("简单描述")
        .icon(BitmapDescriptorFactory.fromResource(R.drawable.custom_location_icon))
        .draggable(true)
        .visible(false)
        .anchor(0.5f, 1f)
        .alpha(0.8f);
marker = aMap.addMarker(markerOptions);

展示一个marker最基本的是要有一个经纬度,否则marker就不知道显示在哪里了。 其次还有很多有属性可以设置。

  • position 经纬度位置
  • title 标题
  • snippet 片段,可以理解成一个非常简短的描述
  • icon 自定义图标,如果不设置就展示默认的定位icon
  • draggable 是否可以拖拽
  • visible 是否可见
  • anchor 图标的中心点
  • alpha 透明度

(2)开始动画

Animation animation = new RotateAnimation(0, 360, 0, 0, 0);
animation.setDuration(1000);
animation.setInterpolator(new LinearInterpolator());
marker.setAnimation(animation);
marker.startAnimation();

(3)Marker事件

// 点击事件
aMap.setOnMarkerClickListener(new AMap.OnMarkerClickListener() {
    @Override
    public boolean onMarkerClick(Marker marker) {
        Log.e("TAG", "onMarkerClick:" + marker.getTitle());
        return false;
    }
});

// 拖拽事件
aMap.setOnMarkerDragListener(new AMap.OnMarkerDragListener() {
    @Override
    public void onMarkerDragStart(Marker marker) {
        Log.e("TAG", "onMarkerDragStart:" + marker.getTitle());
    }

    @Override
    public void onMarkerDrag(Marker marker) {
        Log.e("TAG", "onMarkerDrag:" + marker.getTitle());
    }

    @Override
    public void onMarkerDragEnd(Marker marker) {
        Log.e("TAG", "onMarkerDragEnd:" + marker.getTitle());
    }
});

(4)显示InfoWindow

marker.showInfoWindow();
// marker.hideInfoWindow();

总结

绘制是个大头,先开个简单的头,后面还有很多值得研究的点。本期节目就到这里,感谢大家的收看,我们下期再见~

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏非著名程序员

Android如何实现毛玻璃效果之Android高级模糊技术

Android高级模糊技术 非著名程序员 自从iOS系统引入了Blur效果,也就是所谓的毛玻璃、模糊化效果,磨砂效果,各大系统就开始竞相模仿,这是怎样的一个效果...

41910
来自专栏天天P图攻城狮

例说 Constraint Layout:初探

谷歌的墙裂推荐,标志着 CL 布局的技术已经发展地成熟了,之前还在持观望态度的我们,是时候来深入了解一下这个 Android 布局的终极武器了。

4761
来自专栏三流程序员的挣扎

Android 优化——布局优化

理想情况下,60 FPS 以上就不会卡顿,就是 1 秒内要有 60 帧,所以每一帧要在 16ms 内绘制完成。如果一个页面无法在 16ms 内完成渲染,就会感到...

1342
来自专栏JetpropelledSnake

[简明版] 有道云笔记Markdown指南

使用有道词典配合Markdown,可以快速准确做出美观精致的笔记,下面我们来看一下如何使用有道词典的MarkDown功能。

3421
来自专栏李蔚蓬的专栏

Material Design 实战 之 第六弹 —— 可折叠式标题栏(CollapsingToolbarLayout) & 系统差异型的功能实现(充分利用系统状态栏空间)

顾名思义,CollapsingToolbarLayout是一个作用于Toolbar基础之上的布局,由DesignSupport库提供。

3014
来自专栏AndroidTv

Activity 切换动画---点击哪里从哪放大

emmmm,这次来梳理一下 Activity 切换动画的研究。首先,老规矩,看一下效果图:

6685
来自专栏Android 开发者

用 CoordinatorLayout 处理滚动

1.3K8
来自专栏HenCoder

HenCoder Android 自定义 View 1-8 硬件加速

硬件加速这个词每当被提及,很多人都会感兴趣。这个词给大部分人的概念大致有两个:快速、不稳定。对很多人来说,硬件加速似乎是一个只可远观而不可亵玩的高端科技:是,我...

843
来自专栏非著名程序员

理清 Activity、View 及 Window 之间关系

View、Window以及Activity主要是用于显示并与用户交互的。这让我们在初学的时候很容易弄混,而且无法理解他们区别以及联系。本文是笔者查阅相关资料后,...

2449
来自专栏腾讯Bugly的专栏

iOS 视图,动画渲染机制探究

终端的开发,首当其冲的就是视图、动画的渲染,切换等等。用户使用 App 时最直接的体验就是这个界面好不好看,动画炫不炫,滑动流不流畅。UI就是 App 的门面,...

37912

扫码关注云+社区

领取腾讯云代金券