【问题标题】:Android Google Maps API v2 - Custom marker .png file not recognized by ASAndroid Google Maps API v2 - AS 无法识别的自定义标记 .png 文件
【发布时间】:2017-09-12 23:41:35
【问题描述】:

我正在尝试使用 .png 文件自定义我的标记。它在 drawable 下被复制为 gsw.png。

当我将代码(在 MapActivity.java 中)作为 R.drawable.gsw 放置在代码中时,它会显示图标的缩略图 但是,我收到错误消息,“错误找不到符号变量 gsw”。调用 setUpMap() 来设置带有所有标记的地图。

我看到这个问题已经通过清理、重新启动 eclipse/Android Studio 等为人们解决了。它对我不起作用。任何人都可以帮忙吗?

MapActivity.java 中的代码

private void setUpMap() {

        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("Marker"));
        mMap.addMarker(new MarkerOptions().position(new LatLng(37.497836, -121.9216775)).title("Title"));


         mMap.addMarker(new MarkerOptions()
                        .position(new LatLng(18.500486, 73.866899))
                        .title("Pune")
                        .icon(BitmapDescriptorFactory.fromResource(R.drawable.gsw)));


    }

【问题讨论】:

  • 您是否尝试过使用不同的图像?或者重命名你的drawable文件夹中的图像文件?

标签: android google-maps


【解决方案1】:

您已正确编写代码。如果您使用的是 android studio,请在项目的“YourProjectName\app\src\main\res”文件夹下创建 4 个名称如下所示的文件夹(最好在项目路径上手动完成,而不是在控制台内):

“可绘制的 ldpi”

“可绘制-mdpi”

“可绘制-hdpi”

“可绘制-xhdpi”

“可绘制-xxhdpi”

现在将您自定义的标记图标(仅 .png)复制粘贴到每个文件夹中(如果您根据分辨率为每个文件夹制作不同的大小,效果会更好)。保存并运行您的项目,它肯定会工作。

如果您想更多地自定义标记,可以通过这些链接 link1link 2

【讨论】:

    【解决方案2】:

    Android 不会以这种方式加载 PNG——不要问我为什么。一种选择是将 PNG 保存为 BMP,但您可能不想这样做,因为您担心与其他应用程序的交叉兼容性。不管你的理由是什么,我发现这段代码非常有用:

    Bitmap img = BitmapFactory.decodeResource(getResources(),R.drawable.your_drawable);
    BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(img);
    marker.icon(bitmapDescriptor);
    

    【讨论】:

      【解决方案3】:

      我尝试使用重构选项重命名,但没有成功。然而,在ztan's suggestion 的鼓励下,我在 Paint 中打开了 PNG 文件并将其保存为位图。然后,我使用重构选项删除了 drawable 中的 PNG,并复制了新的 BMP。现在可以正常使用了。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2012-11-25
        • 2012-12-31
        • 1970-01-01
        • 1970-01-01
        • 2013-09-23
        • 1970-01-01
        • 2013-08-26
        • 2013-01-05
        相关资源
        最近更新 更多