查看别人网站的访问量,wordpress用户量上限,外贸 网站外链交换,网站管理与建设下文为各位重点介绍关于Android高德地图自定义Markers的例子#xff0c;希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法。 之前的博客里说了地图的嵌入和定位#xff0c;今天就说说在地图上显示一些我们想要的。在地图中有自带的Markers#xff08;标记希望这篇文章能够让各位理解到Android高德地图自定义Markers的方法。 之前的博客里说了地图的嵌入和定位今天就说说在地图上显示一些我们想要的。在地图中有自带的Markers标记但是它只显示一个椭圆的图标一般是不符合我们的需求的这样就要我们自己来自定义。首先标记有下面一些属性; 1.position(Required) 在地图上标记位置的经纬度值。参数不能为空。 2.title 当用户点击标记在信息窗口上显示的字符串。 3.snippet 附加文本显示在标题下方。 4.draggable 如果您允许用户可以自由移动标记设置为“ true ”。默认情况下为“ false ”。 5.visible 设置“ false ”标记不可见。默认情况下为“ true ”。 6.anchor图标摆放在地图上的基准点。默认情况下锚点是从图片下沿的中间处。 7.perspective设置 true标记有近大远小效果。默认情况下为 false。 8.可以通过Marker.setRotateAngle() 方法设置标记的旋转角度从正北开始逆时针计算。如设置旋转90度Marker.setRotateAngle(90) 9.通过setFlat() 方法设置标志是否贴地显示 自定义图标通常由 BitmapDescriptor 设置。我们可以在类 BitmapDescriptorFactory 使用以下其中一种方法定义。 1.fromAsset(String assetName) 在 assets 目录中使用图像创建自定义标记。 2.fromBitmap (Bitmap image) 使用位图图像创建自定义标记。 3.fromFile (String path) 指定路径的文件创建自定义图标。 4.fromResource (int resourceId) 使用已经存在的资源创建自定义图标。先看一下要实现的效果 地图自带标记 实现效果 实现思路是自定义布局获取数据填入相应位置然后将view转成Bitmap调用AMap.addMarker(markerOptions) 方法添加到地图上。 自定义布局并填充数据 for (int i 0; i positionEneityList.size(); i) {if (positionEneityList.get(i).getType().equals(1)) {View view View.inflate(getActivity(),R.layout.view_day, null);TextView tv_price (TextView) view.findViewById(R.id.tv_price);TextView tv_price_status (TextView) view.findViewById(R.id.tv_price_status);tv_price.setText(positionEneityList.get(i).getPrice());tv_price_status.setText(元/时);Bitmap bitmap CommentActivity.convertViewToBitmap(view);drawMarkerOnMap(new LatLng(Double.parseDouble(positionEneityList.get(i).getLatitude()), Double.parseDouble(positionEneityList.get(i).getLongitude())), bitmap, positionEneityList.get(i).getId());}} 2.转成Bitmap //view 转bitmappublic static Bitmap convertViewToBitmap(View view) {view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED));view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight());view.buildDrawingCache();Bitmap bitmap view.getDrawingCache();return bitmap;} 3.添加到地图上 /*** 在地图上画marker** param point marker坐标点位置example:LatLng point new LatLng(39.963175,* 116.400244); * param markerIcon 图标* return Marker对象*/private Marker drawMarkerOnMap(LatLng point, Bitmap markerIcon, String id) {if (aMap ! null point ! null) {Marker marker aMap.addMarker(new MarkerOptions().anchor(0.5f, 1).position(point).title(id).icon(BitmapDescriptorFactory.fromBitmap(markerIcon)));return marker;}return null;} 这样就实现了上述效果。转载于:https://www.cnblogs.com/zhujiabin/p/5564928.html