gpt4 book ai didi

android - NetworkImageView 与 InfoWindowAdapter

转载 作者:太空狗 更新时间:2023-10-29 12:45:21 26 4
gpt4 key购买 nike

我在尝试将 Volley 的 NetworkImageView 与 Google Maps API v2 的 InfoWindow 结合使用时遇到问题。

我的标记显示了一个信息窗口,其中包含从互联网上获取的图像。如您所知,执行此操作的唯一方法是显示信息窗口并在完成下载图像后刷新它。

所以我需要一种方法来知道 NetworkImageView 何时完成图像下载,以便我可以刷新该 View 。

我正在寻找类似onLoadComplete的东西

有什么想法吗?

最佳答案

修改NetworkImageView

public void setImageUrl(String url, ImageLoader imageLoader, ImageListener myListener) {
mUrl = url;
mImageLoader = imageLoader;
// The URL has potentially changed. See if we need to load it.
loadImageIfNecessary(false, myListener);
}

/** @param myListener notified when image has loaded or on error */
private void loadImageIfNecessary(final boolean isInLayoutPass, final ImageListener myListener) {
...
ImageContainer newContainer = mImageLoader.get(mUrl,
new ImageListener() {
@Override
public void onErrorResponse(VolleyError error) {
if (myListener != null) {
myListener.onErrorResponse(error);
}
if (mErrorImageId != 0) {
setImageResource(mErrorImageId);
}
}
...
@Override
public void onResponse(final ImageContainer response, boolean isImmediate) {
...
if (response.getBitmap() != null) {
if (myListener != null) {
myListener.onResponse(response, false); // pay attention to boolean isImmediate param
}
setImageBitmap(response.getBitmap());
...
}
}
}
...

现在您可以在您的 Adapter 或任何其他代码中使用它:

public void bind(Item item) {
imageView.setImageUrl(imageUrl, app.getImageLoader(), new ImageListener() {
@Override
public void onResponse(ImageContainer response, boolean isImmediate) {
// isImmediate == true - taken from cache
// isImmediate == false - successfully loaded from server
}

@Override
public void onErrorResponse(VolleyError error) { }
});
}

关于android - NetworkImageView 与 InfoWindowAdapter,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18900749/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com