在NetworkImageview Volley android中加载不同的离线图像(默认图像)

时间:2016-02-17 12:43:39

标签: android android-recyclerview android-volley gridlayoutmanager

我有什么

我有GridLayoutManager Recyclerview 位置0,2,5,7已修复自定义图片(相对布局转换为位图;)),休息位置使用凌空的setImageUrl()

填充来自服务器的图像

我想要什么

我希望GridLayoutManager Recyclerview使用 setDefaultImageResId()显示来自 my drawable folder 的离线图片,直到来自服务器的图片加载

我的问题

即使服务器原因没有图像(如果服务器没有数据,default images没有填充单元格),如何设置不同的GridLayoutManager Recyclerview ,我仍然希望显示默认图像(需要迷你4个单元格)

我做的临时技巧

我在虚拟服务器中删除了我的4个默认图像,强制GridLayoutManager Recyclerview生成单元格并使用排球的setImageUrl()

我的预期结果

enter image description here

2 个答案:

答案 0 :(得分:0)

我认为如果发生错误,Volley可以选择显示默认图像和图像。

NetworkImageView niv = (NetworkImageView)findViewById(R.id.niv);
if(url.length() > 0) 
    niv.setImageUrl(url, imageLoader);
niv.setDefaultImageResId(R.drawable._default);
niv.setErrorImageResId(R.drawable.error);

答案 1 :(得分:0)

您可以使用 Picasso library 从服务器加载图片。使用Picasso,您可以确定在出现网络错误或没有可用数据时显示的图像。

WITH DATES AS
(
  SELECT DATE '2014-12-25' + LEVEL -1 dt FROM DUAL CONNECT BY LEVEL <= 500
)
SELECT dt,TO_CHAR(dt,'DY') DAY,TO_CHAR(dt,'WW') WW,TO_CHAR(dt,'IW') IW,
   CASE WHEN TO_CHAR(dt,'D')<TO_CHAR(TO_DATE(TO_CHAR(dt,'YYYY')||'0101','YYYYMMDD'),'D') THEN 
     LPAD(TO_CHAR(dt,'WW')+1,2,'0')
   ELSE 
     TO_CHAR(dt,'WW')
   END MY
FROM dates 

Here's a tutorial on using Picasso.