Android开发之Base64与bitmap互转的工具类
老套路先看效果图:
如上图:分别是bitmap转base64和base64转bitmap
直接上代码。看工具类
package com.example.apidemo.util;
/** Copyright (c) 2019, smuyyh@gmail.com All Rights Reserved.* # #* # _oo0oo_ #* # o8888888o #* # 88" . "88 #* # (| -_- |) #* # 0\ = /0 #* # ___/`---'\___ #* # .' \\| |# '. #* # / \\||| : |||# \ #* # / _||||| -:- |||||- \ #* # | | \\\ - #/ | | #* # | \_| ''\---/'' |_/ | #* # \ .-\__ '-' ___/-. / #* # ___'. .' /--.--\ `. .'___ #* # ."" '< `.___\_<|>_/___.' >' "". #* # | | : `- \`.;`\ _ /`;.`/ - ` : | | #* # \ \ `_. \_ __\ /__ _/ .-` / / #* # =====`-.____`.___ \_____/___.-`___.-'===== #* # `=---=' #* # ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ #* # #* # 佛祖保佑 永无BUG #* # #*/import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.text.TextUtils;
import android.util.Base64;import java.io.ByteArrayOutputStream;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;/*** @author 下一页5(轻飞扬)* 创建时间:2019/11/12 13:48* 个人小站:http://yhsh.wap.ai(已挂)* 最新小站:http://www.iyhsh.icoc.in* 联系作者:企鹅 13343401268* 博客地址:http://blog.csdn.net/xiayiye5* 空间名称:ApiDemo* 项目包名:com.example.apidemo*/
public class Base64Utils {/*** bitmap转base64** @param bitmap 图片* @return 返回*/public static String bitmapToBase64(Bitmap bitmap) {String result = null;ByteArrayOutputStream baos = null;try {if (bitmap != null) {baos = new ByteArrayOutputStream();bitmap.compress(Bitmap.CompressFormat.JPEG, 100, baos);baos.flush();baos.close();byte[] bitmapBytes = baos.toByteArray();result = Base64.encodeToString(bitmapBytes, Base64.DEFAULT);}} catch (IOException e) {e.printStackTrace();} finally {try {if (baos != null) {baos.flush();baos.close();}} catch (IOException e) {e.printStackTrace();}}return result;}/*** base64转为bitmap** @param base64Data 数据* @return 返回图片*/public static Bitmap base64ToBitmap(String base64Data) {byte[] bytes = Base64.decode(base64Data, Base64.DEFAULT);return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);}
}
接下来看下调用方法:
public void imageToBase64(View view) {BitmapDrawable drawable = (BitmapDrawable) ivImage1.getDrawable();Bitmap bitmap = drawable.getBitmap();String s = Base64Utils.bitmapToBase64(bitmap);tvBase64Data1.setText(s);}public void base64ToImage(View view) {Bitmap bitmap = Base64Utils.base64ToBitmap(tvBase64Data1.getText().toString());ivImage2.setImageBitmap(bitmap);try {InputStream open = getAssets().open("flower2.jpg");Bitmap image = BitmapFactory.decodeStream(open);ivImage3.setImageBitmap(image);} catch (IOException e) {e.printStackTrace();}}
Android开发之Base64与bitmap互转的工具类相关推荐
- Android开发之无bug滑动删除源码(非第三方库)
Android开发之无bug滑动删除源码(非第三方库源码请在最后面自行下载) 1.我们先来看下效果图:上边是抽取出来的demo,下边是公司用到的项目 2.我们来看下如何调用(我们这里以listView ...
- android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序
android开发之Intent.setFlags()_让Android点击通知栏信息后返回正在运行的程序 在应用里使用了后台服务,并且在通知栏推送了消息,希望点击这个消息回到activity, ...
- Android开发之TextView高级应用
Android开发之TextView高级应用 我们平时使用TextView往往让它作为一个显示文字的容器,但TextView的功能并不局限于此.以下就和大家分享一下TextView的一些使用技巧. A ...
- android之json解析优化,Android开发之json解析
目前正在尝试着写app,发现看懂代码和能写出来差距很大,最关键的是java基础比较的差,因为只会python,java基础只学习了一个礼拜就过了.感觉java写出来的代码不如python简单明了. 上 ...
- android注册弹窗,Android开发之PopupWindow创建弹窗、对话框的方法详解
本文实例讲述了Android开发之PopupWindow创建弹窗.对话框的方法.分享给大家供大家参考,具体如下: 简介: PopupWindow 可创建类似对话框风格的窗口 效果: 使用方法: 使用P ...
- Android开发之旅:组件生命周期(二)
引言 应用程序组件有一个生命周期--一开始Android实例化他们响应意图,直到结束实例被销毁.在这期间,他们有时候处于激活状态,有时候处于非激活状态:对于活动,对用户有时候可见,有时候不可见.组件生 ...
- Android开发之SpannableString具体解释
在实际的应用开发过程中常常会遇到.在文本的不同部分显示一些不同的字体风格的信息如:文本的字体.大小.颜色.样式.以及超级链接等. 普通情况下,TextView中的文本都是一个样式.对于类似的情况.能够 ...
- Android开发之2048安卓版
之前是在eclipse上写的,后面换成了android sudio. 2048游戏的UI整体可以采用线性布局,即LinearLayout,其中嵌套一个线性布局和一个GridLayout,内嵌的线性布局 ...
- android语音播放工具类,Android开发之MediaPlayer多媒体(音频,视频)播放工具类
本文实例讲述了Android开发之MediaPlayer多媒体(音频,视频)播放工具类.分享给大家供大家参考,具体如下: package com.android.imooc.chat; import ...
最新文章
- python程序实例教程基础-Python简单基础小程序的实例代码
- java中调用api的方式(postJsonHTTP)
- Windows 下安装mysql
- android的m、mm、mmm编译命令
- [PAT乙级]1010 一元多项式求导
- Codeforces Round #716 (Div. 2) D(随机算法)
- Win32ASM-进程学习【2】
- Iirf安装配置(图文)
- Project Server 2003配置部署指南_百度文库
- 怎样在Xcode 4下编译发布与提交App到AppStore?(转)
- SQL Server商业智能–简介
- Java super与this
- QQ模拟自动登录实现
- 刚刚!中科院主导的国产编程语言木兰负责人回应了!承认32位机器上,是基于Python二次开发!...
- STM32跑html协议,STM32移植SBUS协议
- angularjs姓名转拼音js
- 无线射频专题《IEEE 802.11协议讲解1@路由高级配置项,Beacon周期、RTS阈值、DTIM》
- 微型计算机鸡兔同笼,奥数鸡兔同笼问题
- 「Computer Vision」Note on Kinetics and Two-Stream Inflated 3D ConvNets (I3D)
- 【XSY2495】余数
热门文章
- shrio的rememberMe不起作用
- 接口测试学习——jmeter分布式压测
- css--左右visibility建立 “collapse”值问题
- Python Django 学习笔记
- CSS方式支持IE6的fixed样式
- First Impression on BBED: recover deleted rows
- c++:json字符串拼接,json对象组装
- C/C++中函数参数传递
- C++中重载与重写函数区别及虚函数(转载)
- 多线程—synchronized及同步器