Base64.decode解码时选择Base64.DEFAULT一定要把code数据的前缀去掉(data:image/png;base64,) String code="data:image/png;base64,iVBORw0KGgoAAAANSUhEU..." String replaceCode = code.replace("data:image/png;base64,", ""); byte[] bitmapByte = Base64.decode(replaceCode, Base64.DEFAULT); Bitmap bitmap = BitmapFactory.decodeByteArray(bitmapByte, 0, bitmapByte.length);
网上还有一个说法是(根据这个说法改成Base64.URL_SAFE,Base64.decode解码会通过,但是BitmapFactory.decodeByteArray又会报空指针):在涉及到服务器的软件中,由于使用android的Base64解码功能,而服务器端加密为了防止URL格式问题,会采用Apache的URLSafeEncode等方式进行数据安全加密,android端使用Base64.decode(src,Base64.URL_SAFE)不会出现问题 但是如果android自己加密,使用的时Base64.encodeToString(bstr,Base64.DEFAULT)就会有可能出现