笔者公司自己研发的android终端设备中,有拍照模块,然后应用中需要把照片传递到很多页面,如果用intent把图片的byte数组传递页面,有时候会因为字节数组过大而传递不成功,因此封装了一个工具类,先把照片存储到一个类中,跳转页面之后再把图片的byte数组取出来。
1、思路分析
其实就是把图片转成byte数组,然后通过HashMap存储,跳转页面之后在从HashMap中取出byte数组,在转成Bitmap来满足业务的使用
2、核心代码
public class PhotoCollectUtils {
public static PhotoCollectUtils mPhotoCollectUtils;
private HashMap<Integer, byte[]> hashMapData = null;
public static PhotoCollectUtils getInstance() {
if (mPhotoCollectUtils == null) {
mPhotoCollectUtils = new PhotoCollectUtils();
}
return mPhotoCollectUtils;
}
@SuppressLint("UseSparseArrays")
public PhotoCollectUtils() {
hashMapData = new HashMap<Integer, byte[]>();
}
public void saveHashMapData(int num, byte[] dataList) {
if (dataList != null) {
hashMapData.put(num, dataList);
}
}
public HashMap<Integer, byte[]> getHashMapData() {
return hashMapData;
}
public void reSetHashMap() {
if (hashMapData != null) {
hashMapData.clear();
}
}
}
3、使用方法
//存储数据
PhotoCollectUtils.getInstance().saveHashMapData(0, bytes);
//获取存储的数据
private HashMap<Integer, byte[]> hashMap;
hashMap = PhotoCollectUtils.getInstance( ).getHashMapData( );
byte[] byteData = hashMap.get(0);