2015-10-29 4 views
2

Я извлекаю значок значка маркера с сервера, используя библиотеку волейбола.получить изображение с сервера и показать значок маркера с помощью Volley

String icon_url = catObj.getString("icon_url"); 

, а затем назначая icon_url к переменной, объявленной в MyMarker класса

this.mIconUrl = icon_url; 

Теперь в методе setUpMap я застрял, как заменить иконку маркера с изображением Я извлечение с сервера. Вот код для этого:

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

Я использую BitmapFactory для создания настраиваемого шаблона. Вы можете использовать аналогично для загрузки растрового изображения из URL:

Android google mapv2 icon from URL

Или это просто заменить HttpURLConnection с Volley:

google map api v2 add icon from url android

И когда вы получаете точечный рисунок вы можете использовать .icon(BitmapDescriptorFactory.fromBitmap(bmp)));

0

Для получение изображений с использованием Volley вы должны сначала создать экземпляр 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) { 
     } 
    }); 
    }