Android如何加載Base64編碼格式圖片
Base64是傳輸字節(jié)碼的編碼,Android開(kāi)發(fā)過(guò)程中,圖片的加載多數(shù)是請(qǐng)求URL路徑或者加載本地的圖片,當(dāng)然也有加載服務(wù)器用Base64編碼過(guò)的圖片,比如圖形驗(yàn)證碼。當(dāng)然圖形驗(yàn)證碼我們Android也可以用代碼寫(xiě),這里就介紹Android端加載Base64編碼的圖片。話(huà)不多說(shuō),直接上代碼:
ImageView加載Base64編碼圖片,代碼:
//Base64編碼地址(地址太長(zhǎng),省略) String base64String = 'data:image/jpeg;base64,/9j/4AAQSkZJRgA...........'; //將Base64編碼字符串解碼成Bitmap byte[] decodedString = Base64.decode(base64String.split(',')[1], Base64.DEFAULT); Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length); //設(shè)置ImageView圖片imageView.setImageBitmap(decodedByte);
編碼后的圖片會(huì)有” data:image/;base64, “標(biāo)識(shí),在進(jìn)行解碼時(shí)我們需要去掉這一部分,否則會(huì)導(dǎo)致解碼失敗。base64String.split(',')[1]就是獲取除'data:image/;base64,'后的地址。
加載Base64編碼的圖片就是上述的方法,有時(shí)我們還需要對(duì)圖片進(jìn)行編碼與解碼,下面就列出方法。
編碼:
public String encodeImageToString(Bitmap bitmap) { ByteArrayOutputStream outputStream = new ByteArrayOutputStream(); //讀取圖片到ByteArrayOutputStream bitmap.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é)束啦!
以上就是Android如何加載Base64編碼格式圖片的詳細(xì)內(nèi)容,更多關(guān)于Android 加載Base64圖片的資料請(qǐng)關(guān)注好吧啦網(wǎng)其它相關(guān)文章!
相關(guān)文章:
1. webpack高級(jí)配置與優(yōu)化詳解2. ajax接口文檔url路徑的簡(jiǎn)寫(xiě)實(shí)例3. JS寄快遞地址智能解析的實(shí)現(xiàn)代碼4. JSwiff 0.9 - open source Flash framework5. 使用Docker的NFS-Ganesha鏡像搭建nfs服務(wù)器的詳細(xì)過(guò)程6. 刪除docker里建立容器的操作方法7. Django使用HTTP協(xié)議向服務(wù)器傳參方式小結(jié)8. IntelliJ IDEA配置Tomcat服務(wù)器的方法9. IntelliJ IDEA恢復(fù)刪除文件的方法10. Docker 部署 Prometheus的安裝詳細(xì)教程
