2013-10-11 1 views
4

Я работаю над приложением, в котором есть карта google. Маркер по умолчанию на карте виден, но мне нужно сделать снимок с URL-адреса facebook, а затем показать его на карте google. Я использую «universal-image-loader-sample-1.8.6.apk» для загрузки изображений с использованием URL-адреса.

Теперь, чтобы загрузить изображение, я делаю это.android + универсальный загрузчик изображений: показать пользовательский маркер с изображением на карте google

ImageLoader imageLoader; 
imageLoader = ImageLoader.getInstance(); 
ImageLoaderConfiguration ilc = ImageLoaderConfiguration.createDefault(this); 
imageLoader.init(ilc); 
ImageView imageView = (ImageView)findViewById(R.id.friend_pic); 
imageLoader.displayImage(stringImageUrl, imageView); 

Код простой и функциональный displayImage() принимает два аргумента, первый является stringImageUrl(URL-адрес ПОС) второй ImageView(ImageView объект в макете).

Теперь, почему мне нужен объект ViewImage, если мне нужно показать изображение на карте. Объект Wull ImageLoader не возвращает растровое изображение из любой его функции, прежде всего, я использовал ImageView для установки полученного изображения из url в imageview, а затем получить изображение в растровом изображении.
То, что я сделал, это что-то вроде этого.

Drawable drawble = imageView.getDrawable(); 
BitmapDescriptor icon=BitmapDescriptorFactory.fromBitmap(((BitmapDrawable)drawble).getBitmap()); 

После того, как я получил изображение в BitmapDescriptor, его легко установить его в маркер.

Marker location = googleMap.addMarker(new MarkerOptions().visible(true) 
       .title(stringName).position(position).icon(icon); 

но проблема в том, ЭТО НЕ WORKING.Image приходит в ImageView объекта, но не в состоянии получить его Маркер.

+0

не выглядит как универсальный Image Loader является универсальным. –

ответ

1

Я рекомендую вам другой способ, который работает как шарм: Android-запрос.

Вы можете скачать этот файл фляги здесь: http://code.google.com/p/android-query/downloads/list

AQuery androidAQuery=new AQuery(this); 

В качестве примера:

androidAQuery.id(YOUR IMAGEVIEW).image(YOUR IMAGE TO LOAD, true, true, getDeviceWidth(), ANY DEFAULT IMAGE YOU WANT TO SHOW); 

Используя выше код, который вы можете непосредственно показывать изображение через URL. Теперь ниже код, чтобы получить Bitmap непосредственно из URL:

androidAQuery.ajax(YOUR IMAGE URL,Bitmap.class,0,new AjaxCallback<Bitmap>(){ 
         @Override 
         public void callback(String url, Bitmap object, AjaxStatus status) { 
          super.callback(url, object, status); 

          //You will get Bitmap from object. 
         } 

        }); 

Это очень быстро и точно, и с помощью этого вы можете найти гораздо больше функций, таких как анимация при загрузке; получение растрового изображения, если необходимо; и т. д.

+0

принять ответ, если вы сочтете это полезным, чтобы другие люди могли его использовать. –

0

Попробуйте этот путь, надейтесь, что это поможет вам решить вашу проблему.

1.Download Последние AndroidQuery баночка из here

2.Put эту банку с вашими LIBS папку и щелкните правой кнопкой мыши на баночку и Build Path -> Добавить в Bulid путь.

3.How использовать увидеть этот пример:

AQuery androidQuery = new AQuery(this); 

androidQuery.ajax(url.trim(), Bitmap.class, 0, new AjaxCallback<Bitmap>() { 
    @Override 
    public void callback(String url, Bitmap object, AjaxStatus status) { 
     super.callback(url, object, status); 
     googleMap.addMarker(new MarkerOptions().title("yourtitle").icon(BitmapDescriptorFactory.fromBitmap(object)).position(new LatLng(yourlatitude), Double.parseDouble(yourlongitude)))); 
    } 
}); 
+0

показывает ошибку AjaxStatus не может быть разрешен для типа –

+0

@ ShintoJoseph, теперь проверьте мои обновленные ан. –

Смежные вопросы