10

私は新しい Google マップ v2 API に取り組んでいます。

ImageLoader を使用して、マーカーに画像を動的に表示しました。

しかし問題は、Universal Image Loader の onLoadingComplete() を取得したときに、ImageView が自動でも手動でも無効にされないことです。

次に同じマーカーをクリックすると、Universal Image Loader のキャッシュから画像が表示されます。

以下は私のCustomInfoWindowAdapterコードです:

private class CustomInfoWindowAdapter implements InfoWindowAdapter {

    @Override
    public View getInfoContents(Marker marker) {
        return null;
    }

    @Override
    public View getInfoWindow(Marker marker) {
        final View mWindow = getLayoutInflater().inflate(R.layout.custom_info_window, null);

        render(marker, mWindow);
        return mWindow;
    }

    private void render(final Marker marker, View view) {

        final String url = markers.get(marker.getId()).getStrProfilePic();
        final ImageView image = ((ImageView) view.findViewById(R.id.badge));
        Log.e(TAG, "URL : " + url);

        if ( url != null && !url.equalsIgnoreCase("null")
                && !url.equalsIgnoreCase("")) {
            imageLoader.displayImage(url, image, options, new SimpleImageLoadingListener() {
                @Override
                public void onLoadingComplete(String imageUri, View view,
                        Bitmap loadedImage) {
                    super.onLoadingComplete(imageUri, view, loadedImage);
                    ((ImageView) view).invalidate();
                }
            });
        } else {
            image.setImageResource(R.drawable.noimage);
        }

        final String title = marker.getTitle();
        final TextView titleUi = ((TextView) view.findViewById(R.id.title));
        if (title != null) {
            titleUi.setText(title);
        } else {
            titleUi.setText("");
        }

        final String snippet = marker.getSnippet();
        final TextView snippetUi = ((TextView) view.findViewById(R.id.snippet));
        if (snippet != null) {
            snippetUi.setText(snippet);
        } else {
            snippetUi.setText("");
        }
    }
}

マーカーを追加すると、マーカー ID が HashTable に格納されます。そして彼らから写真のURLを取得します。

4

2 に答える 2