使用Picasso

时间:2017-03-22 06:58:06

标签: android google-maps google-maps-markers picasso

我尝试使用Picasso库从网上加载Google地图标记图标。我发现这种方式可以在片段类中生成它......

getActivity().runOnUiThread(new Runnable() {
    @Override
    public void run() {
        LatLng latLng = new LatLng(26.890768, 75.753915);
        Picasso.with(getActivity())
                    .load("image-url.png")
                    .resize(60, 60)
                    .centerCrop()
                    .into(new TMarker(latLng, objects.get(0)));
    }
});

TMarker.class com.squareup.picasso.Target 的实现,如下所示......

class TMarker implements Target {
    LatLng latLng;
    Marker marker;

    TMarker(LatLng latLng, JsonObject object) {
        this.latLng = latLng;
        this.marker = map.addMarker(new MarkerOptions()
                .position(latLng)
                .icon(BitmapDescriptorFactory.fromResource(R.mipmap.ic_marker_default)));
        this.marker.setTag(object);
    }

    @Override
    public void onBitmapLoaded(final Bitmap bitmap, Picasso.LoadedFrom from) {
        marker.setIcon(BitmapDescriptorFactory.fromBitmap(bitmap));
    }

    @Override
    public void onBitmapFailed(Drawable errorDrawable) {

    }

    @Override
    public void onPrepareLoad(Drawable placeHolderDrawable) {

    }
}

我认为这是最简单的方法。现在问题是,加载地图(片段)时第一次没有显示下载的标记图像。当我们重新加载片段时,我的意思是再次出现在这个地图片段上,每次都显示图像。所以这是第一次的问题;)

请提供我错过的指南!

0 个答案:

没有答案