java.net.MalformedURLException: no protocol--Glide
阿新 • • 發佈:2018-12-24
no protocol翻譯為無協議,像http/https都是最常用的指定協議,網路請求url格式不規範,就會造成該exception。
列印log:/storage/emulated/......
的確是無協議,但是我就是載入本地圖片的啊。
Glide圖片載入庫不僅可以載入網路資源也可以載入本地資源圖片,但是為什麼?
public static void displayRound(Context context, ImageView imageView, String url) { if (imageView == null) { throw new IllegalArgumentException("argument error"); } String cookie = SharedPreferencesUtil.getInstance().getString("cookie"); GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder().addHeader("Set-Cookie", cookie).build()); RequestOptions requestOptions = new RequestOptions() .diskCacheStrategy(DiskCacheStrategy.ALL) .placeholder(R.mipmap.ic_default_head) .error(R.mipmap.ic_default_head) .centerCrop() .fallback(new ColorDrawable(Color.RED)) .transform(new GlideRoundTransformUtil())//圓角 ; Glide.with(context).load(glideUrl) .apply(requestOptions) .into(imageView); }
簡單看了看載入圖片的程式碼,
GlideUrl glideUrl = new GlideUrl(url, new LazyHeaders.Builder().addHeader("Set-Cookie", cookie).build());
本公司後臺需要保持個session會話,因為gilde不新增session會被拒絕訪問,這段程式碼就是給glide新增session用的。
Glide.with(context).load(glideUrl) .apply(requestOptions) .into(imageView);
這裡直接load(glideUrl)
,預設該請求為網路請求,所以載入本地圖片資源時報了no protocol
重新起個方法載入就好:
public static void displayLocalPic(Context context, ImageView imageView, String url) { if (imageView == null) { throw new IllegalArgumentException("argument error"); } RequestOptions requestOptions = new RequestOptions() .placeholder(new ColorDrawable(Color.BLACK)) .error(new ColorDrawable(Color.BLUE)) .centerCrop(); Glide.with(context).load(url) .apply(requestOptions) .into(imageView); }