我尝试使用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) {
}
}
我认为这是最简单的方法。现在问题是,加载地图(片段)时第一次没有显示下载的标记图像。当我们重新加载片段时,我的意思是再次出现在这个地图片段上,每次都显示图像。所以这是第一次的问题;)
请提供我错过的指南!