标签:
原文:http://blog.csdn.net/xueerfei008/article/details/23046341
做项目的时候需要用到在2个activity之间传递一些数据,之前做的都是些字符串之类的东东,结果这次卡了好久,折腾了一个下午。
第一个:传递bitmap
这个问题非常奇葩(可能我android水平还不够),居然不会报错,我是直接用bundle或Intent的extral域直接存放bitmap,结果运行时各种宕机,各种界面乱窜(我非常的纳闷)。。。搜索之后看大家都说不能直接传递大于40k的图片,然后在德问论坛上找到了解法。就是把bitmap存储为byte数组,然后再通过Intent传递。
的
代码如下所示:
其中 第一行代码就是如何从一个imageview中获得其图片,这个问题也倒腾了下,貌似用setDrawingCacheEnabled也行,因为开始用的这个方法,但是直接在activity之间传递bitmap,所以导致运行时错误,后来改正之后没有再尝试。
先new一个ByteArrayOutputStream流,然后使用Bitmap中的compress方法,把数据压缩到一个byte中,传输就可以了。
在另一个activity中取出来的方法是:
取出来字节数组之后,用BitmapFactory中的decodeByteArray方法组合成一个bitmap就可以了。
再加上一个存储的代码:
2.传递map对象:
封装到bundle中:
这个SeralizableMap是自己封装的一个实现了Serializable接口的类:
这样才能把map对象扔到bundle中去,
取出来的方法是:
Android基础 -- Activity之间传递数据(bitmap和map对象)
标签:
原文地址:http://www.cnblogs.com/mochaMM/p/5160926.html