android 怎么将一个类中的arraylist<bitmap>序列化。

我让这个类实现Parcelable接口,然后让bitmap可序列化,用arraylist来add,可是结果依然是没有序列化成功。
这个问题我已经解决了,android序列化有两种方式,一种是来自于java的实现Serializable,还有一种是android特有的实现Parcelable,我最开始选用实现Parcelable是因为他性能更好些。
解决办法就是将Arraylist<bitmap>换成Arraylist<MyBitmap>,自定义可序列化的MyBitmap类,将bitmap存放为byte[] bitmapBytes,需要bitmap的时候直接调用相应的方法将byte[] bitmapBytes转换成bitmap。

第1个回答  推荐于2016-05-02

例如:public static void main(String[] args) throws IOException{
 List<Date> list=new ArrayList<Date>();
 Date now=new Date();
 list.add(now);
 list.add(new Date(now.getTime()+8888888));
 ByteArrayOutputStream byteStream=new ByteArrayOutputStream();
 ObjectOutput output=new ObjectOutputStream(byteStream);
 output.writeObject(list);
 byte b[]=byteStream.toByteArray();
 BASE64Encoder base64Encoder=new BASE64Encoder();
 String cookieString=base64Encoder.encode(b);
 System.out.println("经过BASE64编码的Cookie:\n"+cookieString);
 System.out.println("\n开始解码");
 BASE64Decoder base64Decoder=new BASE64Decoder();
 byte buf[]=base64Decoder.decodeBuffer(cookieString);
 ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(buf);
 ObjectInput input=new ObjectInputStream(byteArrayInputStream);
 List<Date> afterList=(List<Date>) input.readObject();
 for (Date date : afterList) {
  System.out.println(date);
 }
}

补充:Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由Google公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安致”。

第2个回答  2012-08-21
序列化不是实现Serializable接口么本回答被提问者采纳

如何用Android studio快速实现对象的序列化接口
1、在线安装 从Android studio的菜单栏里选择“Preferences”,然后点击“Plugins”选择底部的“Browser repositories”然后再搜索框中输入parcelable,按回车之后选择搜索结果的第一个,android parcelable code generator点击右边的“install plugin”按钮进行安装即可。2、由于网络原因有些用户可能无法使用在线安装...

android如何使用intent的传输一个ArrayList<Map<String,Node>>类型...
这种数据不建议使用intent去传,太复杂了,用bundle的话数据得有多少、、、 建议在自己的程序里面加静态变量等于 该 ArrayList<Map<String,Node>> ,或者实现一个非静态变量的 get 和 Set方法 ,这样在其他地方可以直接调用。

安卓如何将ArrayList的每一个数据拿出来转换成String类型?
如果Node是自己写的一个类那么只需要让Node实现Serializable序列化接口就行如果Node是某个api提供的一个类那么就修改不到,这时候可以把这个对象转换为其他形式再进行传输,比如json,最简便的就用Gson框架了ArrayList> data = new ArrayList>();Map nodes = new HashMap();nodes.put("node1", new No...

Android是怎么对对数据源中list<String>字段进行Parcelable序列化...
ArrayList<String> photos;写入 dest.writeStringList(photos);读取zhidao this.photos=new ArrayList<>();in.readStringList(this.photos);注意加粗地方,另一个人回答错了!

android 如何将listview的每个item中的值传到另一个Activity中
将你需要传递的属性封装成一个类并进行序列化 然后使用Intent进行序列化传递一个集合,这个集合的泛型就是封装的那个类 intent.putExtra("list", (Serializable)list);然后再另一个Activiy中接受一下就行了,注意强转 list = (List<泛型>) intent.getSerializableExtra("flist");...

求助,怎么在json数据中返回一个对象的List
一般的做法是先创造一个实体类,譬如:public class A{ private int a;private List<String> list=new ArrayList<String>();} 然后将这个实体类序列化成Json字符串,你就可以在Json字符串中看到有list对象。

android中handler和service的区别是什么
只有当<activity>中的allowTaskReparen ting设置为true,抑或是调用方将Intent的flag添加FLAG_ACTIVITY_NEW_TASK属性时才会生效。如果有机会用到Android的Notification机制就能够知道,每一个由notification进行触发的Activity,都必须是一个设成FLAG_ACTIVITY_NEW_TASK的Intent来调用。这时候,开发者很可能需要妥善配置...

Android系统中Parcelable和Serializable的区别
3、编程实现 对于Serializable,类只需要实现Serializable接口,并提供一个序列化版本id(serialVersionUID)即可。而Parcelable则需要实现writeToParcel、describeContents函数以及静态的CREATOR变量,实际上就是将如何打包和解包的工作自己来定义,而序列化的这些操作完全由底层实现。Parcelable的一个实现例子如下 [java]...

java中如何将数据封装为JSON包?
java中将数据封装为JSON包,可以使用java提供的jsonArray这个工具类进行转换,代码如下: package com.json;import java.io.IOException;import java.util.ArrayList;import java.util.Collection;import java.util.HashMap;import java.util.Iterator;import java.util.List;import java.util.Map;import javax.servlet.http...

阿里通电话服务器拒绝检测怎么办
一个简单的本地拒绝服务类漏洞,要想进行大规模的自动化扫描,扫描器也要做不少的工作,并且随着对本地拒绝服务漏洞的认识,阿里聚安全的漏洞扫描器也在不断进行优化提高。 2.1 空Intent阶段 这个阶段的扫描器是初级阶段,一般只是通过AndroidManifest.xml文件获取应用导出的组件,然后使用adb命令发送空intent给导出组件,捕获...

相似回答