android - 在 Google Maps API v2 中更改标记大小

标签 android android-maps-v2

我正在尝试将我的应用程序移植到全新的 Google Maps API v2,但找不到如何更改标记的大小(我的一些标记小于默认值)。

在 v1 中,我使用了一个 Drawable,在将其添加到 map 之前,我使用 setBounds() 对其进行了缩放。

但是现在,在 v2 中,我不能使用 Drawable。我必须使用 MarkerOptions().icon(),它只需要一个 BitmapDescriptor(使用 BitmapDescriptorFactory 生成)。

查看引用,似乎不支持设置或更改 BitmapDescriptor 大小。

那么,是我遗漏了什么,还是根本不可能在这个 API 版本中设置自定义标记的大小?

最佳答案

您可以先将其转换为位图并更改其大小,然后将该位图用作自定义标记。例如,我首先创建了一个方法,它接受您在可绘制文件夹中的图像文件的名称,以及您要设置的标记的宽度和高度。

public Bitmap resizeMapIcons(String iconName,int width, int height){
    Bitmap imageBitmap = BitmapFactory.decodeResource(getResources(),getResources().getIdentifier(iconName, "drawable", getPackageName()));
    Bitmap resizedBitmap = Bitmap.createScaledBitmap(imageBitmap, width, height, false);
    return resizedBitmap;
}

然后在 setUpMap() 方法中像这样调用以创建所需大小的新标记。

googleMap.addMarker(new MarkerOptions()
            .title("New Marker")
            .snippet("Check out this place.")
            .position(chelsea).icon(BitmapDescriptorFactory.fromBitmap(resizeMapIcons("image_name",100,100))));

关于android - 在 Google Maps API v2 中更改标记大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14851641/

相关文章:

安卓唤醒锁

android - 在 Activity 开始选项卡上在 android 中发送服务器请求?

java - Android map 应用程序未在 Eclipse 上运行

android - 在 ImageView 边界上拖动时删除 map 标记

android - 无法启动 Android 虚拟 AVD 设备

android - 更改时间强制关闭 : Time Picker (NPE)

android - 为基于 IOS 和 Android 的设备编写一个客户端

android - 如何更改谷歌地图标记图标?

android - 单次触摸后如何启用拖动标记(Android Map Api v2)?

android - Google maps API v2 通过 id 查找标记