小程序原生组件—提升你的小程序体验
699
2022-10-19
Android中获取网络图片的方法(如果手机缓存里面有就从缓存获取)
// 如果缓存里面有就从缓存获取,否则网络获取图片,返回Drawable对象 public static Drawable loadImageFromNetwork(Context context, String imageUrl) { Drawable drawable = null; if(imageUrl == null ) return null; String imagePath = ""; String fileName = ""; // 获取url中图片的文件名与后缀 if(imageUrl!=null&&imageUrl.length()!=0){ fileName = imageUrl.substring(imageUrl.lastIndexOf("/")+1); } // 图片在手机本地的存放路径,注意:fileName为空的情况 imagePath = context.getCacheDir() + "/" + fileName; Log.i("test","imagePath = " + imagePath); File file = new File(context.getCacheDir(),fileName);// 保存文件 Log.i("test","file.toString()=" + file.toString()); if(!file.exists()&&!file.isDirectory()) { try { // 可以在这里通过文件名来判断,是否本地有此图片 FileOutputStream fos=new FileOutputStream( file ); InputStream is = new URL(imageUrl).openStream(); int data = is.read(); while(data!=-1){ fos.write(data); data=is.read();; } fos.close(); is.close();// drawable = Drawable.createFromStream(// new URL(imageUrl).openStream(), file.toString() ); // (InputStream) new URL(imageUrl).getContent(); drawable = Drawable.createFromPath(file.toString()); Log.i("test", "file.exists()不文件存在,网上-:" + drawable.toString()); } catch (IOException e) { Log.d("test", e.getMessage()); } }else { drawable = Drawable.createFromPath(file.toString()); Log.i("test", "file.exists()文件存在,本地获取"); } if (drawable == null) { Log.d("test", "null drawable"); } else { Log.d("test", "not null drawable"); } return drawable ; }
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~