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程序设计有所帮助。