我正在尝试使用.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)));
}
答案 0 :(得分:1)
你已经编写了正确的代码。如果您正在使用android studio,请在项目的“YourProjectName \ app \ src \ main \ res”文件夹下创建4个文件夹,其名称如下所示(最好在项目路径上手动操作,而不是在控制台内):
“可拉伸-LDPI”
“可拉伸-MDPI”
“可拉伸-HDPI”
“可拉伸-xhdpi”
“可拉伸-xxhdpi”
现在将您的自定义标记图标(仅限.png)复制粘贴到每个文件夹中(如果根据分辨率为每个文件夹设置不同的尺寸,则效果会更好)。保存并运行你的项目,它肯定有效。
答案 1 :(得分:1)
Android不会以这种方式加载PNG - 不要问我为什么。一种选择是将PNG保存为BMP,但是您可能不希望这样做,因为您担心与其他应用程序的交叉兼容性。无论你的原因是什么,我发现这段代码非常有用:
Bitmap img = BitmapFactory.decodeResource(getResources(),R.drawable.your_drawable);
BitmapDescriptor bitmapDescriptor = BitmapDescriptorFactory.fromBitmap(img);
marker.icon(bitmapDescriptor);
答案 2 :(得分:-1)
我尝试使用重构选项重命名,但它不起作用。但是,在ztan's suggestion的鼓励下,我在Paint中打开了PNG文件并将其保存为位图。然后,我使用重构选项删除了drawable中的PNG,并复制了新的BMP。它现在工作正常。