我将带有毕加索库的图像加载到地图中的每个标记。但是我只从json对象中获取图像的最后一个URL,我缺少了什么?这是我的代码的主要部分:
try {
JSONArray array = new JSONArray(result);
for (int i=0;i<array.length();i++){
MarkerOptions markerOptions = new MarkerOptions();
JSONObject object = array.getJSONObject(i);
//url image from json object, to show on each mark his specific image.
url = object.getString("image_path");
markerOptions.position(new LatLng(Double.parseDouble(object.getString("lat")),Double.parseDouble(object.getString("lon"))));
googleMap.addMarker(markerOptions.title("details about this marker:").snippet("more details!!!!!"));
googleMap.setInfoWindowAdapter(new GoogleMap.InfoWindowAdapter() {
@Override
public View getInfoWindow(Marker marker) {
view = getLayoutInflater().inflate(R.layout.custom_marker_layout,null);
Maps.this.marker = marker;
ImageView image = (ImageView) view.findViewById(R.id.imageViewRoad);
Picasso.with(getApplicationContext())
.load(url)
.error(R.mipmap.ic_launcher)
.into(image);
return view;
}
@Override
public View getInfoContents(Marker marker) {
if (Maps.this.marker != null
&& Maps.this.marker.isInfoWindowShown()) {
Maps.this.marker.hideInfoWindow();
Maps.this.marker.showInfoWindow();
}
return null;
}
});
您可以看到的屁股,我将此行放入for循环:
url = object.getString("image_path");
因为我表中的每一行都有图片和位置(纬度和经度)。您能告诉我如何解决这个问题吗?
此外,当我尝试打印到控制台以检查url是否仅保留表中的最后一行时,我没有看到它,我的表中有34行,并且在每次迭代中我都获得了正确的url。但毕加索只加载最后一个(array.length())
Picasso.with(getApplicationContext())
.load(url)
.error(R.mipmap.ic_launcher)
.into(image);
Log.i("url:", "url is:" +url);