Map V2フラグメントのマーカーにInfoWindowを表示したいとします。 これは、ウェブから動的にロードされるビットマップをUniversal Image Downloaderで表示したいのです。Maps V2 InfoWindowの動的コンテンツ
これは私のInfoWindowAdapterです:
class MyInfoWindowAdapter implements InfoWindowAdapter {
private final View v;
MyInfoWindowAdapter() {
v = getLayoutInflater().inflate(R.layout.infowindow_map,
null);
}
@Override
public View getInfoContents(Marker marker) {
Item i = items.get(marker.getId());
TextView tv1 = (TextView) v.findViewById(R.id.textView1);
ImageView iv = (ImageView) v.findViewById(R.id.imageView1);
tv1.setText(i.getTitle());
DisplayImageOptions options = new DisplayImageOptions.Builder()
.delayBeforeLoading(5000).build();
imageLoader.getMemoryCache();
imageLoader.displayImage(i.getThumbnailUrl(), iv, options,
new ImageLoadingListener() {
@Override
public void onLoadingStarted(String imageUri, View view) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingFailed(String imageUri, View view,
FailReason failReason) {
// TODO Auto-generated method stub
}
@Override
public void onLoadingComplete(String imageUri,
View view, Bitmap loadedImage) {
Log.d("MAP", "Image loaded " + imageUri);
}
@Override
public void onLoadingCancelled(String imageUri,
View view) {
// TODO Auto-generated method stub
}
});
return v;
}
@Override
public View getInfoWindow(Marker marker) {
// TODO Auto-generated method stub
return null;
}
}
私はこれで2つの問題を抱えて:私たちはInfoWindow
をknowとして
が描かれ、(私の場合ImageView
に新しいBitMap
で)それを後から変更されますが表示されない/ InfoWindow
は更新されていません。 imageLoader
が終了したときにInfoWindowにリロードするよう通知するにはどうすればよいですか?私はonLoadingComplete
に
marker.showInfoWindow()
を入れたときには、などのマーカーは、ポップアップ表示画像のロードを開始、自分自身をポップアップ表示されます無限ループを作成し
私の第二の問題は、低速なネットワーク接続上の(シミュレートしていることですコード内で5000msの遅延がある場合)InfoWindow
のImageView
には、最後にロードされた画像が表示されます(その画像がImageWindow
/Marker
の場合)。
これを徹底的に実装する方法に関する提案はありますか?
をMarkerClickListenerを追加した私のアダプタで
は、誰もがコードを入れてくださいことはできますか? –
ここにコードを入れてください.....ありがとう – sonida
プログラミングはコピー・ペースト操作についてではありません。私の答えは従いやすいべきであり、そうでなければ質問をして物を明確にするかもしれない。 –