1 服務端圖片的信息被轉化成字符串,傳到android客戶端,android端需要把這些信息再解碼轉化成圖片並保存在本地。 2 //編碼部分 3 String string = Base64.encodeToString(str.getBytes(),Base64.DEFAULT); 4 //解碼部分string 是服務端發來的信息 5 byte[] byteIcon= Base64.decode(string,Base64.DEFAULT); 6 for (int i = 0; i < byteIcon.length; ++i) { 7 if (byteIcon[i] < 0) { 8 byteIcon[i] += 256; 9 }} 10 //建立一個文件對象 11 File iconFile = new File("userIcon.png"); 12 FileOutputStream fos = new FileOutputStream(iconFile); 13 if(!iconFile.exists()) 14 { 15 iconFile.creatNewFile(); 16 } 17 //把圖片數據寫入文件形成圖片 18 fos.write(byteIcon); 19 20 我到網上搜了一下,發現我這種寫法變復雜了,實際上byteIcon可以直接轉換成Bitmap,不過這樣就不能實現本地保存了 21 //服務端 22 //編碼,記住這個流,經常用於圖片和Base64數據的切換 23 ByteArrayOutputStream baos = new ByteArrayOutputStream(); 24 //圖片壓縮並轉換成流,bitmap在這我就不初始化了 25 bitmap.compress(Bitmap.compressFormat,100,baos); 26 byte[] byteServer = baos.toByteArray(); 27 String result = Base64.encodeToString(byteServer.Base64.DEFAULT); 28 [在此輸入鏈接描述][1] 29 30 //android端 31 byte[] byteIcon = Base64.decode(result,Base64.DEFAULT); 32 Bitmap bitmap = BitmapFactory.decode(byteIcon,0,byteIcon.length);
以上數據轉自:http://my.oschina.net/lengwei/blog/355901僅作為收藏,
在我自己的一篇文章里面也是用到了Base64,有興趣的可以去看看,http://www.cnblogs.com/fuck1/p/5459660.html