2 goodnessboy GoodnessBoy 于 2016.02.12 10:43 提问

用intent获取图像如何传到新的activity中? 1C

主activity中有一个button 调用照相机。

获取照片。

现在需要把这个图像传到新的activity中。
图片

5个回答

leilba
leilba   Rxr 2016.02.12 11:20

bitmap不能通过intent传递的吧,bitmap类貌似没有实现Serializable或者是Parcelable接口,不能被intent序列化。
你要传递的话,可以把bitmap存储为byte数组,然后再通过Intent传递

 Bitmap bmp=((BitmapDrawable)order_con_pic.getDrawable()).getBitmap();  
Intent intent=new Intent(this,Activity2.class);  
ByteArrayOutputStream baos=new ByteArrayOutputStream();  
bmp.compress(Bitmap.CompressFormat.PNG, 100, baos);  
byte [] bitmapByte =baos.toByteArray();  
intent.putExtra("bitmap", bitmapByte);  
startActivity(intent);  

取的话如下:

 Intent intent=getIntent();  
        if(intent !=null)  
        {  
            byte [] bis=intent.getByteArrayExtra("bitmap");  
                        //重新生成
            Bitmap bitmap=BitmapFactory.decodeByteArray(bis, 0, bis.length);  
        }  
leilba
leilba 回复GoodnessBoy: 放哪里都可以的,不一定要在handler里面
2 年多之前 回复
GoodnessBoy
GoodnessBoy 多谢。 这部分我能理解。 用intent启动第二个activity的时候是用handler实现吗?
2 年多之前 回复
lxk_1993
lxk_1993   Rxr 2016.02.16 17:24

转化为bitmap 传过去就好

qq_17250009
qq_17250009   2016.02.17 20:51

intent不适合携带bitmap这样比较大的数据,建议传递图片路径到第二个activity。

hwhzyy
hwhzyy   2016.02.19 17:37

intent传值好像是500k还是1m。下载下来,传路径比较好吧。

91program
91program   Ds   Rxr 2016.02.12 10:56

启动新的acitivity时,intent可以带参数的。如果参数时图片的路径,是很简单的。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
Android Intent传递数据从一个Activity到另一个Activity
本文参考:http://www.cnblogs.com/tdalcn/p/3467445.html MainActivity.java核心代码 Intent intent=new Intent();               intent.setClass(MainActivity.this, SecondActivity.class);//从一个activit
使用intent把ArrayList<object>传递到另一个activity
1.传递 ArrayList object = new ArrayList(); Intent intent = new Intent(Current.class, Transfer.class); Bundle args = new Bundle(); args.putSerializable("ARRAYLIST",(Serializable)object); intent.putExtra
Android 任务栈、Intent.FlAG_ACTIVITY_xxx、Activity四种启动模式
官网地址:http://developer.android.com/guide/components/tasks-and-back-stack.html 任务栈: > 从主屏幕上点选一个app图标,进入一个app内部;那么即开始了一个task stack。 > 默认情况下,start的activity,都在同一个task stack。 后退栈: > 从activity-A
android中使用两个intent使数据在两个Activity中传递
在不同活动之间传递数据的方法。
Android启动一个新的activity并携带数据,返回数据给上一个activity
一、在启动一个新的activity的时候可以通过Intent携带数据,通过Intent.putExtra()方法通过键值对的形势装入数据。在新启动的activity中通过getIntent()方法获取启动activity的Intent,并通过getxxxxExtra()获取传递的数据。 二、如果希望被启动的新activity返回数据,则需要使用startActivityForResult()
EventBus代替Intent将复杂对象传递给下一个即将启动的Activity
我觉得EventBus确实非常好,把我们从序列化中解脱出来,即使不序列化也能在界面间传递数据,但是有个前提,那是两个界面都已经存在并且注册了EventBus。而即将启动的下一个Activity就非常尴尬地不方便使用EventBus。当我们想给即将启动的界面传递参数时,一般都是用intent,但是复杂参数是需要序列化才能够传递的,如果你实在不想序列化,可能你就得像这样做了: 调用startActi
Android 从一个activity到另一个activity(有传送数据)
Intent activity_change= new Intent(Activityanother.this, MainActivity.class); //切换 Activityanother至MainActivity Bundle bundle = new Bundle();// 创建Bundle对象 bundle.putInt("data",data );
打开一个新的activity并关闭当前activity,以及intent的用法
Intent intent = new Intent();    intent.setClass(Forward.this, ForwardTarget.class);//forward为当前activity,forwardTarget为新的activity    startActivity(intent);    finish();   Intent用法实例 1.无参
Intent传递HashMap数据
1)先要创建model对象 public class SerializableHashMapimplements Serializable {     private HashMap map;     public HashMap getMap() {         return map;     }     public void setMap(HashMap map) {
在activity之间传递handler(一)
最近在研究基于安卓系统的语音识别和蓝牙通讯,过程中涉及到多个activity的交互。activity之间的交互数据可以由Intent完成,也可以借用Handler。如果用intent的话,一定要finish当前的activity UI,另一个activity响应,数据才得以传递,此时UI势必改变。而用handler是在一个activity中控制另一个activity活动的好方法。在activity之