最近项目中有一个需求,获取服务端的图片Base64码转回图片后保存至相册,这么简单的事还用得着我动手吗,当然是使用ctrl c v大法了,下面看看代码:

public void savePicture(String courseStr){

SavePictureBean savePictureBean = new Gson().fromJson(courseStr, SavePictureBean.class);

String imgPath = savePictureBean.getImgSource();

Bitmap bitmap = ImageBase64Utils.base64ToBitmap(imgPath);

boolean b = SaveBitmapUtil.saveImageToGallery(mActivity, bitmap, null);

if (b) {

mActivity.toast("保存成功");

} else {

mActivity.toast("保存失败");

}

}

imgSource就是获取到的Base64串,这也太简单了,马上开始测试一下,

结果就崩了。。。。。。。。。。

崩的代码定位到这里:

/**

* base64转bitmap

*

* @param @param base64String

* @param @return 设定文件

* @return Bitmap 返回类型

* @throws

* @Title: base64ToBitmap

*/

public static Bitmap base64ToBitmap(String base64String) {

byte[] decode = Base64.decode(base64String, Base64.NO_WRAP);

Bitmap bitmap = BitmapFactory.decodeByteArray(decode, 0, decode.length);

return bitmap;

}

提示Base64码不正确,但我在网页上转是好好的,所以不可能不正确。后来发现传过来的Base64码带了格式,像这样: data:image/jpeg;base64,hshshsbsbshshyzgzgzv......

,前面是编码格式,后面是编码 ,而网页上是需要格式的 ,但在手机里就不需要格式, 所以就崩了。。。

竟然还有这种事,只好自己把前面的格式去掉了:

public void savePicture(String courseStr){

SavePictureBean savePictureBean = new Gson().fromJson(courseStr, SavePictureBean.class);

String imgPath = savePictureBean.getImgSource();

Bitmap bitmap = ImageBase64Utils.base64ToBitmap(imgPath.substring(imgPath.indexOf(",")+1));

boolean b = SaveBitmapUtil.saveImageToGallery(mActivity, bitmap, null);

if (b) {

mActivity.toast("保存成功");

} else {

mActivity.toast("保存失败");

}

}

这样就可以了。。

记录

android本地图片转base64,Android Base64转图片 保存至相册相关推荐

  1. android 本地数据库持久化框架,android数据库持久化框架, ormlite框架,

    前言 Android中内置了SQLite,但是对于数据库操作这块,非常的麻烦.其实可以试用第3方的数据库持久化框架对之进行结构上调整, 摆脱了访问数据库操作的细节,不用再去写复杂的SQL语句.虽然这样 ...

  2. Unity iOS 获取相册图片, 调用原生相机, 截屏并保存到相册

    原文链接 该Demo实现如下功能 1.从相册_照片 获取图片, 并贴在Image上 2.从相册_时刻 获取照片, 并贴在Image上 3.打开原生相机,拍照并把照片贴在Image上 4.截屏并保存到相 ...

  3. android 本地html传递参数,Android WebView适配html加载本地文件并上传

    写在前面 自从做Android APP产品以来,版本更迭一版接着一版,为新的业务需求一步也未曾停歇.工作开始进入一种机械化的快节奏:接触新知识,新技术领域一般都是通过网上找资料,快速入门,遇到问题解决 ...

  4. android 本地lrc 歌词同步,android 音乐播放器-------歌词同步 lrc

    lrc格式 : [al:这首歌所在的唱片集 ] [ar:歌词作者 ] [by:本LRC文件的创建者 ] [offset:+/- 以毫秒为单位整体时间戳调整,+增加,-减小 ] [re:创建此LRC文件 ...

  5. android本地视频封装uri,android – 从内容uri获取所拍摄视频的文件

    我有一个方法如下: private String getRealPathFromUriForVideos(Uri selectedVideoUri) { String wholeID = Docume ...

  6. android 本地ip获取,【android】 获取本地ip方法

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 public static String getLocalhostIp() { String hostIp = null; try { Enumerati ...

  7. Android本地存储安全

    Android本地存储安全 在Android应用程序中,本地存储是保存用户数据和敏感信息的常见方式.但是,由于这些信息可以被恶意应用程序或攻击者轻易地访问,所以在开发Android应用程序时需要注意本 ...

  8. android 监测属性值变化,Android 的系统属性(SystemProperties)分析 | Bob's Blo...

    以下分析以android 4.03为基础 前言 Android的系统属性相当于windows的注册表,由key和value组成,且都是核心系统的一个基本机制.相对于windows的注册表,Androi ...

  9. Android 从 Android 本地图库选择多个图片

    原文地址 本文说明如何从 Android 本地图库选择多个图片.作者考虑很多解决方案. 演示从 Android 本地图库选择多个图片,有两个方法可以实现从图库中选择多个图片: 用 Intent 获取多 ...

最新文章

  1. shell操作典型案例--FTP操作
  2. Ruby --- gem(RubyGems)安装与使用
  3. CalledFromWrongThreadException
  4. mysql联合索引的数据结构
  5. 跳一跳python源码下载_python 微信跳一跳和源码解读
  6. 华为鸿蒙os2.0系统何时搭载手机,鸿蒙OS 2.0系统正式发布!余承东:明年华为系手机将会搭载...
  7. OpenGait:首个步态识别框架开源了!
  8. 甜蜜暴击,情人节插画素材,甜而不腻!
  9. D8(YT88)加密狗破解与加密工具
  10. 别以透明的名义降低人工智能的能力
  11. Flutter 2.10 开发Windows桌面应用快速入门
  12. 中秋节快乐ooooo
  13. 三峡学院计算机调剂,重庆三峡学院2019考研调剂信息公告
  14. 用Meta标签代码让360双核浏览器默认极速模式不是兼容模式
  15. 基于Spring+SpringMVC+MyBatis博客系统的开发教程(十六)
  16. IMPERVA- 系统导出
  17. el-input实现尾部加字
  18. 智能合约部署Error: exceeds block gas limit undefined
  19. java调用授权接口oauth2_微信授权就是这个原理,Spring Cloud OAuth2 授权码模式
  20. python登录教务系统_python+mysql实现教务管理系统

热门文章

  1. 【Cocos2d-x游戏开发】编译时出现 commands commence before first target
  2. 极盾科技郑冬东:XDR的技术栈参考
  3. 下载图片(包括动态图gif)
  4. 【课后小结】网络班第一节课
  5. 【解决redis.exceptions.ResponseError】
  6. Unity中图片压缩格式
  7. 表单中method=“post“什么意思?
  8. 人类对于人工智能的担忧来源于什么(上)
  9. 单元测试框架 Mockito 注解 – @Mock, @Spy, @Captor, @InjectMocks
  10. D3 笔记十:力导向图