Android-Maps-Extensions异步加载标记图像

Android-Maps-Extensions异步加载标记图像,第1张

概述我正在尝试将图像(从服务器下载)显示为GoogleMap上的地图标记.我使用Android-Maps-Extensions是因为我对GoogleMap-Utils的性能不满意.现在,我想知道如何使用AME异步加载地图标记图像.如果图像不是群集,则任务是显示图像本身.如果它是一个群集,我想显示第一个标记的图像和群集

我正在尝试将图像(从服务器下载)显示为Google Map上的地图标记.我使用Android-Maps-Extensions是因为我对Google Map-Utils的性能不满意.

现在,我想知道如何使用AME异步加载地图标记图像.如果图像不是群集,则任务是显示图像本身.
如果它是一个群集,我想显示第一个标记的图像和群集中元素的数量.

到目前为止,我已经完成了以下 *** 作:

1)设置地图群集器

private voID setupMapClusterer() {    mClusterOptions = new EClusterOptionsprovIDer(getContext());    ClusteringSettings clusteringSettings = new ClusteringSettings();    clusteringSettings.addMarkersDynamically(true);    clusteringSettings.clusterOptionsprovIDer(mClusterOptions);    mMap.setClustering(clusteringSettings);}

2)创建群集选项提供程序

public EClusterOptionsprovIDer(Context context) {    mClusterOptions = new ClusterOptions();    mContext = context;    mIconGenerator = new IconGenerator(context);    // Inflate Layout    VIEw markerVIEw = LayoutInflater.from(context).inflate(R.layout.map_marker, null);    mImageVIEw = (ImageVIEw) markerVIEw.findVIEwByID(R.ID.map_marker_image);    mTextVIEw = (TextVIEw) markerVIEw.findVIEwByID(R.ID.map_marker_text);    // Setup Icon Generator    mIconGenerator.setContentVIEw(markerVIEw);}public Bitmap createIcon(Bitmap bmp, String text) {    mImageVIEw.setimageBitmap(bmp);    mTextVIEw.setText(text);    return mIconGenerator.makeIcon();}@OverrIDepublic ClusterOptions getClusterOptions(List<Marker> List) {    // Get Bitmap from first marker    Marker first = List.get(0);    mClusterOptions.icon(BitmapDescriptorFactory.fromBitmap(mIconGenerator.makeIcon()));    return mClusterOptions;}

这为我提供了一个地图,其中群集具有我的自定义视图(这是正确的),但是我不知道要在哪里下载图像以及如何将它们放入单个标记中,尤其是群集中.

当然,我不想提前下载所有图像(我们谈论的是500张)图像.

在sIDenode上:我正在使用Volley异步dl图像.

解决方法:

我创建了一个使用集群和异步加载标记的简单示例.
希望您在这里找到一些有用的信息. https://github.com/pengrad/android-maps-async-markers

我们将使用GlIDe加载图标,我发现它比Picasso更稳定.
为要添加到地图的每个标记调用loadIconMarker.

MarkerOptions markerOptions = ...// you should pass some icon before new loaded, or leave default one//markerOptions.icon(BitmapDescriptorFactory.fromresource(R.drawable.default_marker));Marker marker = mMap.addMarker(markerOptions);loadMarkerIcon(marker);private voID loadMarkerIcon(final Marker marker) {    GlIDe.with(this).load("http://www.myiconfinder.com/uploads/iconsets/256-256-a5485b563efc4511e0cd8bd04ad0fe9e.png")            .asBitmap().fitCenter().into(new SimpleTarget<Bitmap>() {        @OverrIDe        public voID onResourceReady(Bitmap bitmap, GlIDeAnimation<? super Bitmap> glIDeAnimation) {            BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(bitmap);            marker.setIcon(icon);        }    });}

创建ClusterIcon有点困难.这是我的ClusterOptionsprovIDer.
我使用基本位图R.drawable.m1并在其上添加表示簇中标记数量的文本.

public class ClusterIconProvIDer implements ClusterOptionsprovIDer {    Resources resources;    Paint paint;    Bitmap base;    public ClusterIconProvIDer(Resources resources) {        this.resources = resources;        paint = new Paint(Paint.ANTI_AliAS_FLAG);        paint.setcolor(color.WHITE);        paint.setTextAlign(Paint.Align.CENTER);        paint.setTextSize(15);        base = BitmapFactory.decodeResource(resources, R.drawable.m1);    }    @OverrIDe    public ClusterOptions getClusterOptions(List<Marker> List) {        Bitmap bitmap = base.copy(Bitmap.Config.ARGB_8888, true);        Rect bounds = new Rect();        String text = String.valueOf(List.size());        paint.getTextBounds(text, 0, text.length(), bounds);        float x = bitmap.getWIDth() / 2.0f;        float y = (bitmap.getHeight() - bounds.height()) / 2.0f - bounds.top;        Canvas canvas = new Canvas(bitmap);        canvas.drawText(text, x, y, paint);        BitmapDescriptor icon = BitmapDescriptorFactory.fromBitmap(bitmap);        return new ClusterOptions().anchor(0.5f, 0.5f).icon(icon);    }}
总结

以上是内存溢出为你收集整理的Android-Maps-Extensions异步加载标记图像全部内容,希望文章能够帮你解决Android-Maps-Extensions异步加载标记图像所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1079486.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-27
下一篇 2022-05-27

发表评论

登录后才能评论

评论列表(0条)

保存