- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
所以我决定试用新的 Volley library如 Google IO 2013 所示.
我尝试过使用 NetworkImageView
的简单解决方案在 GridView
上显示多个图像。
它运行良好并显示图像,但如果我让它下载图像然后在下载过程中关闭 WiFi,它不会显示错误,就好像所有内容仍在加载一样。不仅如此,如果我恢复连接,它也不会恢复加载。
为什么会发生,我该如何解决?也许这实际上是一个错误?
这是我的示例代码,如果有人想尝试一下(BitmapCacheLru
代码 here ):
public class MainActivity extends Activity {
private static final int COLUMNS_COUNT = 4;
private RequestQueue _requestQueue;
private ImageLoader _imageLoader;
@Override
protected void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
_requestQueue=Volley.newRequestQueue(this);
_imageLoader=new ImageLoader(_requestQueue, new BitmapLruCache());
final GridView gridView = new GridView(this);
gridView.setNumColumns(COLUMNS_COUNT);
final int screenWidth = getResources().getDisplayMetrics().widthPixels;
gridView.setAdapter(new BaseAdapter() {
@Override
public View getView(final int position, final View convertView, final ViewGroup parent) {
NetworkImageView rootView = (NetworkImageView) convertView;
if (rootView == null) {
rootView = new NetworkImageView(MainActivity.this);
rootView.setLayoutParams(new AbsListView.LayoutParams(screenWidth / COLUMNS_COUNT, screenWidth / COLUMNS_COUNT));
rootView.setScaleType(ScaleType.CENTER_CROP);
rootView.setDefaultImageResId(android.R.drawable.sym_def_app_icon);
rootView.setErrorImageResId(android.R.drawable.ic_dialog_alert);
}
final String url = getItem(position);
rootView.setImageUrl(url, _imageLoader);
return rootView;
}
@Override
public long getItemId(final int position) {
return 0;
}
@Override
public String getItem(final int position) {
return Images.imageThumbUrls[position];
}
@Override
public int getCount() {
return Images.imageThumbUrls.length;
}
});
setContentView(gridView);
}
@Override
protected void onStop() {
_requestQueue.cancelAll(this);
super.onStop();
}
}
附言如果你想看NetworkImageView
的代码,我觉得可以here .
最佳答案
我认为问题在于 volley 无法帮助您重新加载图像。
快速检查显示 NetworkImageView 仅在调用 onLayout 方法时加载数据,方法 loadImageIfNecessary 将在必要时对网络请求进行排队。
当没有互联网连接时,将调用错误回调,一旦互联网自行连接,将不会有进一步的操作。
但是,由于您在列表中有 NetworkImage,当您滚动列表时,我想您将重用单元格 View 并再次调用 setImageURL。如果 Internet 连接可用,图像将自动加载。或者,一旦 Internet 连接启动,您可以刷新 ListView ,以便自动加载图像。
关于android - Volley - NetworkImageView 有时不显示错误图像?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16875357/
我有一个NetworkImageView,它从 URL 加载其内容,但在特定情况下,我还希望能够从用户的图库加载图像(甚至用相机捕获图像) . 我正在使用Image Chooser Library从图
CircularNetworkImageView thumbNail = ((CircularNetworkImageView) convertView.findViewById(R.id.UserI
我正在动态创建 Imageview 并显示它。但是我在滚动时遇到了重新加载问题所以我决定使用 NetworkImageView 但在这里我无法设置位图。它没有显示任何错误,但没有显示任何图像。在我的代
我正在尝试从我的 API 上传图像以将其显示为个人资料图片,问题是从用户第一次打开抽屉导航开始,图像就不会加载,这会使整个布局消失,但是从第二次一切正常,我注意到当图像的宽度小于高度时会发生这种情况。
我正在尝试在 ViewPager 内的 NetworkImageView 上实现缩放和双击功能。我引用了本教程:http://www.androidhive.info/2013/09/android-
我试图从 ListView 中获取 NetworkImageView 的图像路径,但它返回 null。在我的 MainActivity.java 中,我使用以下内容: listView.setO
所以我决定试用新的 Volley library如 Google IO 2013 所示. 我尝试过使用 NetworkImageView 的简单解决方案在 GridView 上显示多个图像。 它运行良
我对这个出色的库怀念的是它不会在 NetworkImageView 中回收位图。如果在方法 NetworkImageView.onDetachedFromWindow 中某处调用回收将是完美的。目前,
有人知道是否可以使用 Google 的 Volley 库从单个 NetworkImageView 中清除缓存的图像吗? 我在 NetworkImageView 中有一张头像图片,我想在将其上传到服务器
我有一个 ListView 显示的东西,其中许多有说明性图像,有些没有。 ViewHolder 使用 NetworkImageView 来显示插图。 问题是即使设置了默认图像,它也不会显示,直到调用
我通过调用 setImageUrl 使用 Volley 的 NetworkImageView: mANetworkImageView.setImageUrl(url, getImageLoader()
我在尝试将 Volley 的 NetworkImageView 与 Google Maps API v2 的 InfoWindow 结合使用时遇到问题。 我的标记显示了一个信息窗口,其中包含从互联网上
我想从资源中设置 NetworkImageView 的图像。 我目前使用的配置是,如果有与内容关联的图片,则图片是从网络上下载的。如果没有图像,则使用预定义的资源。 final NetworkImag
我填充了一个 ListView,其中每行中的一项是 NetworkImageView。现在我通过 Intent putExtra() 将每一行传递给 detail_product Activity 。
我试图在我的应用程序中的 Volley 类的 NetworkImageView 中禁用缓存。我试过这段代码,但它没有删除缓存。 mNetworkImageView = (NetworkImageVie
我使用 Volley NetworkImageView 从互联网下载图像并显示在我的 listview 中。现在我想让 Volley NetworkImageView 在没有可用网络时显示保存的图像。
因此,我将 MVVM、数据绑定(bind)、RecyclerView 和 Volley ImageLoader 与 NetworkImageView 结合使用。 我主要是尝试显示包含 NetworkI
我有一个包含 NetworkImageView 项目的列表,我遇到了一个奇怪的错误。我希望能够使用滑动手势删除列表项,所以我使用了 EnhancedListView图书馆。问题是,当我使用滑动手势删除
我在我的项目中使用了 ViewPager,到目前为止,我发现 Volley 非常擅长为各个页面加载图像。 Volley 需要 com.android.volley.toolbox.NetworkIma
我在我的应用程序中使用 Facebook 照片。 Facebook 照片存储在 https 网址后面。 谁能给我一个使用 https 使用 networkimageview 加载图像的示例? 最佳答案
我是一名优秀的程序员,十分优秀!