我正在使用排球库从服务器获取标记图标URL。
String icon_url = catObj.getString("icon_url");
然后将icon_url分配给 MyMarker 类中声明的变量
this.mIconUrl = icon_url;
现在在setUpMap方法中我遇到了如何用从服务器获取的图像I替换标记图标的方法。以下是此代码:
for(MyMarker myMarker : markers)
{
Marker marker = mMap.addMarker(new MarkerOptions()
.position(myMarker.getmLatLng())
.title(myMarker.getmLabel())
.snippet(myMarker.getmIcon())
.icon( ??? )); //myMarker.getmIconUrl won't work as it return String
}
我也试过这个链接,但它在ImageView中显示图像:
http://www.simplifiedcoding.net/android-volley-example-to-load-image-from-internet/
感谢任何帮助。
答案 0 :(得分:0)
我使用BitmapFactory渲染自定义模式。您可以使用类似于从URL加载位图:
Android google mapv2 icon from URL
或者这只是用Volley替换HttpUrlConnection:
google map api v2 add icon from url android
当您获得位图时,您可以使用.icon(BitmapDescriptorFactory.fromBitmap(bmp)));
答案 1 :(得分:0)
要使用排球获取图像,您必须首先创建MarkerOptions
的实例,然后使用 Volley ImageLoader 从服务器获取图像,然后将图像设置为得到它的位图后的标记。你可能会有这样的事情:
ImageLoader imageloader =VolleySingleton.getInstance(getApplicationContext()).getImageLoader();
for(MyMarker myMarker : markers)
{
final MarkerOptions markerOptions = new MarkerOptions()
.position(myMarker.getmLatLng());
imageloader.get(myMarker.getmIconUrl(), new ImageLoader.ImageListener() {
@Override
public void onResponse(ImageLoader.ImageContainer response, boolean isImmediate)
{
Bitmap bitmap = response.getBitmap();
if (bitmap != null) {
markerOptions.icon(BitmapDescriptorFactory.fromBitmap(bitmap));
//add marker to your map using below codes
// mapMarkers is a HashMap of your markers and your possible values for that location(eg. id,name,..)
Marker marker = mMap.addMarker(markerOptions);
mapMarkers.put(marker, myMarker.getLocationId());
}
}
@Override
public void onErrorResponse(VolleyError error) {
}
});
}