tas*_*iac 13 android google-maps google-maps-markers google-maps-android-api-2
我已经想出了这篇文章,但它适用于已弃用的Google Maps API
http://tech.truliablog.com/2012/02/23/custom-map-markers-for-android-google-maps/
在新的API中,我找不到一个简单的方法来做到这一点.事实上,我根本做不到.
基本上我想在地图上将TextViews作为标记使用9Patch drawable作为文本的背景.Trulia仍然在他们当前的应用程序中使用新的API v2.你可以在这里查看

我怎样才能做到这一点?
Mac*_*ski 37
Chris Broadfoot创建了一个实用程序库.
该库可在此处获取:https://github.com/googlemaps/android-maps-utils
另请参阅此简短视频:http://www.youtube.com/watch?v = nb2X9IjjZpM
可以使用谷歌提供的这个有用的lib简单地实现它.
IconGenerator icg = new IconGenerator(this);
icg.setColor(Color.GREEN); // green background
icg.setTextAppearance(R.style.BlackText); // black text
Bitmap bm = icg.makeIcon("200 mi");
Run Code Online (Sandbox Code Playgroud)
在style.xml中
<style name="BlackText" parent="TextDefault">
<item name="android:textColor">@color/black</item>
</style>
Run Code Online (Sandbox Code Playgroud)
http://googlemaps.github.io/android-maps-utils/javadoc/
http://googlemaps.github.io/android-maps-utils/
https://github.com/googlemaps/android-maps-utils
据我所知,google maps api v2目前不支持此功能.另一方面,您可以做的是动态创建标记的位图,并写入要在其中显示的值.唉,如果你碰巧有很多针脚,可能很容易出现性能问题.
Canvas canvas = new Canvas(bitmap);
canvas.drawText("Your text", textXOffset, textYOffset, mPictoPaint);
MarkerOptions options = new MarkerOptions().position([…]).icon(BitmapDescriptorFactory.fromBitmap(bitmapResult));
Marker newMarker = map.addMarker(options);
Run Code Online (Sandbox Code Playgroud)
注意,bitmap需要是可变的.此外,您还必须根据需要缩放基本图像(可能使用9.patch).
我知道这个问题很旧,但我会在这里发布我的答案,以防它对某人有所帮助。
上述解决方案都不适合我,因为
我的应用程序中已经有自定义标记图标
我的应用程序可能会显示数千个不同的标记标题,因此在内存中创建这么多图像将是一个性能问题
随着标记图标变大,地图很快就会变得难以辨认
我在互联网上找不到解决方案,所以我卷起袖子制作了这个库来解决我的问题,希望它也能帮助其他人:
https://github.com/androidseb/android-google-maps-floating-marker-titles
以下是其工作原理的预览:
| 归档时间: |
|
| 查看次数: |
31683 次 |
| 最近记录: |