Android编程使用Intent传递图片的方法详解
本文实例讲述了Android编程使用Intent传递图片的方法。分享给大家供大家参考,具体如下:
基本思路是先把bitmap转化为byte数组,用Intent传递数组,在将数组转化为bitmap
bitmap转化为byte数组的方法:
privatebyte[]Bitmap2Bytes(Bitmapbm){ ByteArrayOutputStreambaos=newByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG,100,baos); returnbaos.toByteArray(); }
byte数组转化为bitmap方法:
bytebuff[]=mIntent.getByteArrayExtra("image"); bitmap=BitmapFactory.decodeByteArray(buff,0,buff.length);
程序实例:
第一个activity:
importjava.io.ByteArrayOutputStream; importandroid.app.Activity; importandroid.content.Intent; importandroid.graphics.Bitmap; importandroid.graphics.BitmapFactory; importandroid.graphics.drawable.BitmapDrawable; importandroid.os.Bundle; importandroid.view.View; importandroid.view.View.OnClickListener; importandroid.widget.Button; importandroid.widget.ImageView; publicclassSendImageActivityextendsActivityimplementsOnClickListener{ /**Calledwhentheactivityisfirstcreated.*/ privateBitmapbitmap; bytebuff[]=newbyte[125*250]; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); ImageViewmImageView=(ImageView)findViewById(R.id.image); Buttonbt1=(Button)findViewById(R.id.bt1); bitmap=BitmapFactory.decodeResource(getResources(),R.drawable.option24); buff=Bitmap2Bytes(bitmap); BitmapDrawablemBitmapDrawable=newBitmapDrawable(bitmap); mImageView.setBackgroundDrawable(mBitmapDrawable); bt1.setOnClickListener(this); } @Override publicvoidonClick(Viewarg0){ //TODOAuto-generatedmethodstub IntentmIntent=newIntent(); mIntent.putExtra("image",buff); mIntent.setClass(this,activity2.class); startActivity(mIntent); } privatebyte[]Bitmap2Bytes(Bitmapbm){ ByteArrayOutputStreambaos=newByteArrayOutputStream(); bm.compress(Bitmap.CompressFormat.PNG,100,baos); returnbaos.toByteArray(); } }
第二个activity:
importandroid.app.Activity; importandroid.content.Intent; importandroid.graphics.Bitmap; importandroid.graphics.BitmapFactory; importandroid.graphics.drawable.BitmapDrawable; importandroid.os.Bundle; importandroid.widget.Button; importandroid.widget.ImageView; publicclassactivity2extendsActivity{ privateBitmapbitmap; publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.layout2); ImageViewmImageView=(ImageView)findViewById(R.id.image2); IntentmIntent=getIntent(); bytebuff[]=mIntent.getByteArrayExtra("image"); bitmap=BitmapFactory.decodeByteArray(buff,0,buff.length); BitmapDrawablemBitmapDrawable=newBitmapDrawable(bitmap); mImageView.setBackgroundDrawable(mBitmapDrawable); } }
发送图片:
Intentintent=newIntent(ChangePortraitActivity.this,UserProfileActivity.class); mImageView.setDrawingCacheEnabled(Boolean.TRUE); intent.putExtra("BITMAP",mImageView.getDrawingCache());//这里可以放一个bitmap startActivity(intent);
接收图片:
//接收的activity Intentintent=getIntent(); if(intent!=null&&intent.getParcelableExtra("BITMAP")!=null){ Bitmapbitmap=(Bitmap)getIntent().getParcelableExtra("BITMAP"); mImageViewPortrait.setImageBitmap(bitmap); }
希望本文所述对大家Android程序设计有所帮助。