Android加載Base64編碼格式圖片
Base64是傳輸字節(jié)碼的編碼,Android開發(fā)過程中,圖片的加載多數(shù)是請求URL路徑或者加載本地的圖片,當(dāng)然也有加載服務(wù)器用Base64編碼過的圖片,比如圖形驗證碼。當(dāng)然圖形驗證碼我們Android也可以用代碼寫,這里就介紹Android端加載Base64編碼的圖片。話不多說,直接上代碼:
ImageView加載Base64編碼圖片,代碼:
//Base64編碼地址(地址太長,省略)String base64String = "data:image/jpeg;base64,/9j/4AAQSkZJRgA...........";//將Base64編碼字符串解碼成Bitmapbyte[] decodedString = Base64.decode(base64String.split(",")[1], Base64.DEFAULT);Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);//設(shè)置ImageView圖片imageView.setImageBitmap(decodedByte);
編碼后的圖片會有” data:image/;base64, “標(biāo)識,在進(jìn)行解碼時我們需要去掉這一部分,否則會導(dǎo)致解碼失敗。base64String.split(",")[1]就是獲取除"data:image/;base64,"后的地址。
加載Base64編碼的圖片就是上述的方法,有時我們還需要對圖片進(jìn)行編碼與解碼,下面就列出方法。
編碼:
public String encodeImageToString(Bitmap bitmap) {ByteArrayOutputStream outputStream = new ByteArrayOutputStream();//讀取圖片到ByteArrayOutputStreambitmap.compress(Bitmap.CompressFormat.PNG, 40, outputStream); //參數(shù)如果為100那么就不壓縮byte[] bytes = outputStream.toByteArray();String strImg = Base64.encodeToString(bytes, Base64.DEFAULT);return strImg;}
解碼:
public Bitmap sendImage(String imgAddress) {byte[] input = Base64.decode(imgAddress, Base64.DEFAULT);Bitmap bitmap = BitmapFactory.decodeByteArray(input, 0, input.length);return bitmap;}
到這里就結(jié)束啦!
評論
圖片
表情
