用 intent 传递 Bitmap

intent用于不同activity间的跳转,跳转的同时可以附带上参数(这有点像php中的$_GET[]和$_POST[])

有两个相关的函数:

intent.putExtra("key", value);     //写入

value = intent.getXXXExtra("key");  //读取,XXX是相应的数据类型,如String

对于Bitmap,由于intent不支持,则需先转换成byte[]再传递。

 1 private Bitmap photo_bmp = null;
 2 private String nickname = null;
 3
 4 //Activity A:
 5 private byte[] Bitmap2Bytes(Bitmap bm){
 6     ByteArrayOutputStream baos = new ByteArrayOutputStream();
 7     bm.compress(Bitmap.CompressFormat.JPEG, 100, baos);
 8     return baos.toByteArray();
 9  }
10
11 byte buf[] = new byte[1024*1024];
12 buf = Bitmap2Bytes(photo_bmp);
13 intent.putExtra("photo_bmp", buf);
14 intent.putExtra("nickname", nickname);
15
16
17 //Activity B:
18 byte buf[] = intent.getByteArrayExtra("photo_bmp");
19 photo_bmp = BitmapFactory.decodeByteArray(buf, 0, buf.length);
20 nickname = intent.getStringExtra("nickname");
时间: 2024-08-27 13:41:40

用 intent 传递 Bitmap的相关文章

Activity跳转时传递Bitmap对象的实现

前言 相信大家可能都了解Activity跳转时我们是能够传递參数的,比方使用Intent传递或者Bundle来传递,把当前Activity的一些信息传递给将要跳转到的新的Activity.可是不知道大家有没有想过,我们能不能传递一个Bitmap对象呢?可能有人会问为什么要传递一个Bitmap对象?好吧,由于我在开发中遇到了这种问题才去说说这个. 我前段时间想从网络获取图片显示在ImageView上,当显示好了之后,我希望点击ImageView能够跳转到新的Activity然后显示我点击的图片,所

Android开发经验之—intent传递大数据

在Activity或者组件之前传递信息时,一般采用intent绑定bundle的方式传值,但在使用过程中需要注意的是不要用bundle传递大容量数据: 在做项目的过程中,需要将听写界面的听写结果信息传递到听写记录界面供显示用,但是由于传递的数据量过大导致程序ANR,甚至直接报异常(传递的信息里面有bitmap转换成的byte数组.每一个词组的拼音.词语.语音信息),经过分析发现是由于bundle不能传递大容量的数据信息,在stackoverflow里面查阅发现有同行遇到类似的问题: (1)"Th

[转]intent 传递对象

---恢复内容开始--- Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.short[].int.int[].long.long[].float.float[].double.double[].String.String[],还有实现Serializable.Parcelable接口的类对象. 传递类对象以前一直没搞懂怎么做,都是用静态引用.现在终于搞懂了

通过Intent传递对象的两种方法

1 Serializable 2 Parcelable 实现方法: a.定义两个javaBean(Book,Person),分别implements Serializable和Parcelable b.建立Activity,用来传递Object对象和接收Object对象,通过Serializeable和Pacelable方法传递对象,分别调用方法 bundle.putSerializable(String key,Serializable value) bundle.putParcelable(

android难题:如何通过intent传递另一个intent

============问题描述============ 如题,如何通过intent传递另一个intent, 如何在一个activity中,获取另一个Activity的上下文 ============解决方案1============ Intent实现了Parcelable接口,直接用putExtra 传递就行了. ============解决方案2============ 1.在A的Activity中声明 public static AActivity instance; 2.在oncreat

Android 开发中使用Intent传递数据的方法

Activity之间通过Intent传递值,支持基本数据类型和String对象及它们的数组对象byte.byte[].char.char[].boolean.boolean[].short.short[].int.int[].long.long[].float.float[].double.double[].String.String[],还有采用实现Serializable.Parcelable接口的类对象传递数据的两种方法:一种是Bundle.putSerializable(Key,Obje

android intent 传递list或者对象

方法一: 如果单纯的传递List<String> 或者List<Integer>的话 就可以直接使用 Java代码 intent.putStringArrayListExtra(name, value) intent.putIntegerArrayListExtra(name, value) 方法二: 如果传递的是List<Object>,可以把list强转成Serializable类型,然后通过 Java代码  putExtras(key, (Serializable

通过 Intent 传递类对象

Android中Intent传递类对象提供了两种方式一种是 通过实现Serializable接口传递对象,一种是通过实现Parcelable接口传递对象. 要求被传递的对象必须实现上述2种接口中的一种才能通过Intent直接传递 Intent中传递这2种对象的方法: Bundle.putSerializable(Key,Object); //实现Serializable接口的对象 Bundle.putParcelable(Key, Object); //实现Parcelable接口的对象 Per

使用Intent传递参数的问题

我在Fragment中使用Intent调用某一个Activity 同时传递Parcable对象,对象中存在List列表,列表中的对象也是Parcable的,当使用Intent传递该对象时,回报空指针异常. 而在线程间传递Parcable不会出现这些问题.当传递ArrayList<Parcable>列表时,会出现属性值丢失的问题,比如long的值的丢失问题.