android + 通用图像加载器 : show custom marker with image in google map

标签 android image google-maps google-maps-api-3 bitmap

我正在开发一个包含谷歌地图的应用程序。 map 中的默认标记是可见的,但我要做的是从 facebook url 获取图像,然后将其显示在谷歌地图上。我正在使用“universal-image-loader-sample-1.8.6.apk”来使用 url 加载图像。

现在我正在加载图像。

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 对象)

现在如果我必须在 map 上显示图像,为什么我需要 ViewImage 对象。那么 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);

但问题是,这不起作用。图像进入 imageView 对象,但无法将其发送到 Marker

最佳答案

我向您推荐一种非常有效的不同方式:Android 查询。

您可以从此处下载该 jar 文件: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 显示您的图像。现在下面的代码是直接从 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.
                        }

                    });

它非常快速和准确,使用它您可以找到更多功能,例如加载时的动画;如果需要,获取位图;等

关于android + 通用图像加载器 : show custom marker with image in google map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19310985/

相关文章:

image - 用CSS覆盖图像的非透明区域

image - HTML5如何在canvas中绘制透明像素图片

image - 在 BlackBerry 5.0 中显示静态 Google map 图像

android - Google Drive Api 账户授权

c# - 构建后Unity3D加载资源

android - 如何调用另一个 Activity 的方法

javascript - JS Promise 无法返回结果

javascript - Kendo 弹出编辑器上不显示 Google map

android - ActionProvider 使用自定义 View 而不是菜单项?

java - 无法在 ListView 中收听 setOnItemClickListener - Android