用Fresco加載圖片發(fā)現(xiàn)加載不出來疙教,開始懷疑是圖片的問題器紧,但用 imageView.setImageBitmap是可以正常展示容贝,但由于業(yè)務(wù)需求自脯,需要對(duì)圖片進(jìn)行放大縮小效果,故必須使用Fresco加載斤富,后來發(fā)現(xiàn)該圖片名含有%3a膏潮、%2f這類符號(hào),發(fā)現(xiàn)該類符號(hào)是在瀏覽器和插件中顯示非標(biāo)準(zhǔn)的字母和字符满力,它們分別對(duì)應(yīng)的是:和/焕参,所以這張圖片應(yīng)該是從網(wǎng)上獲取的。找到問題了油额,就把該類字符全部替換掉叠纷。
/**
* \/:*?*<>| 這些字符用URL編碼形式表示的ASCII字符,
* 在瀏覽器和插件中顯示非標(biāo)準(zhǔn)的字母和字符潦嘶,如%3a涩嚣、%2f等,含有這些
* 字符串的文件名掂僵、用fresco是加載不出來的
* modify by
*/
public class UrlEncodeUtil {
/**
* 將含有的特殊字符替換掉
* 如果不含有特殊字符航厚,返回""
*/
public static String replaceSpecialChar(String path){
// \/:*?*<>|這幾個(gè)字符分別對(duì)應(yīng)的URL編碼形式表示的ASCII字符
String regEx = "%5c|%2f|%3a|%2a|%3f|%3c|%3e|%7c";
Pattern p = Pattern.compile(regEx,Pattern.CASE_INSENSITIVE);
Matcher m = p.matcher(path);
if (m.find()){
return m.replaceAll("").trim();
}
return "";
}
}