Посмотрите пожалуйста на функцию setUpdateMarker.
Моя цель - обновить положение и изображение маркера в RealTime.
Например, если у меня есть два маркера, но я вижу только одно изображение, которое меняется между двумя маркерами. Я хочу увидеть два изображения.
Кажется, что проблема находится во внутреннем классе DownloadImageTask, потому что он выглядит как статический класс.
Как я могу это исправить?
public class MyClusterManagerRenderer extends DefaultClusterRenderer<ClusterMarker> { .............. .............
/**
* Update the GPS coordinate of a ClusterItem
* @param clusterMarker
*/
public void setUpdateMarker(ClusterMarker clusterMarker) {
marker = getMarker(clusterMarker);
if (marker != null) {
marker.setPosition(clusterMarker.getPosition());
dit = new DownloadImageTask();
dit.execute(clusterMarker.getIconPath());
}
}
private class DownloadImageTask extends AsyncTask<String, Void, Bitmap> {
@Override
protected Bitmap doInBackground(String... urls) {
Bitmap mIcon = null;
try {
InputStream in = new URL(urls[0]).openStream();
mIcon = BitmapFactory.decodeStream(in);
} catch (Exception e) {
e.printStackTrace();
}
return mIcon;
}
@Override
protected void onPostExecute(Bitmap result) {
if (marker!=null && result != null) {
Bitmap resizedBitmap = Bitmap.createScaledBitmap(result, markerWidth, markerHeight,
false);
marker.setIcon(BitmapDescriptorFactory.fromBitmap(resizedBitmap));
}
}
} }