用户头像bitmap保存入本地,避免重复从网上get

来源:互联网 发布:手机淘宝怎么找店铺 编辑:程序博客网 时间:2024/06/07 11:39
一个小功能吧,简单介绍下。就是用户头像的问题,公司里的app,个人感觉一般用户很少自己上传头像,都是从网络上get下来服务器里的头像,所以每次点击个人页面的时候都会从服务器get头像bitmap。下面就简单介绍下,从网络上将bitmap保存到本地,然后以后点击个人页面时再从本地取出bitmap就行了。第一步:创建一个headFile文件和一个headSavePath文件保存路径headFile = new File(Environment.getExternalStorageDirectory()               + "/headview.png");headSavePath = Environment.getExternalStorageDirectory() + "/headview"+ ".png";第二步:我们只需要从网络上get一次即可,其他都是从本地获取,这一步就是教你从网络上获取bitmap,如何保存到本地中。  saveMyBitmap(bitmap, headFile);//假设这个bitmap就是从网络上获取的。  public void saveMyBitmap(Bitmap mBitmap, File file) {      FileOutputStream Out = null ;       try {           Out = new FileOutputStream(file );      } catch (FileNotFoundException e) {           e.printStackTrace();      }       mBitmap.compress(Bitmap.CompressFormat. PNG, 90, Out);       try {           Out.flush();      } catch (IOException e) {           e.printStackTrace();      }       try {            Out.close();      } catch (IOException e) {           e.printStackTrace();      } 第三步:就是从本地取出bitmap,然后给头像imageview设置bitmap了。代码如下: mine_head.setImageBitmap( getLoacalBitmap(headSavePath)); //getLoacalBitmap方法就是从本地获取bitmap //这里的url就是上面的文件保存路径public static Bitmap getLoacalBitmap (String url ) throws IOException {       try {          FileInputStream fis = new FileInputStream(url);          Bitmap map = BitmapFactory.decodeStream(fis);           fis.close();           return map;      } catch (FileNotFoundException e) {           e.printStackTrace();           return null;      } }最后需要加一个判断:if (headFile .length() == 0) {         如果保存头像bitmap的文件是空的,那么就从网络上获取          Log. d("xiaokun2", "bitmap yibaocun");          /**执行从网络上获取bitmap的逻辑代码          */        } else {           try {              //否则从本地获取               mine_head.setImageBitmap( getLoacalBitmap(headSavePath));          } catch (IOException e) {                 e.printStackTrace();          }          Log. d("xiaokun1", "bitmap yibaocun");      }
0 0
原创粉丝点击