在Android開發中;Activity之間傳遞參數是常見的事;如果我們要在Activity之間傳遞圖片;
1。MainActivity中包括一個ImageView;當我們點擊ImageView時;把圖片傳遞給另外一個Activity
MainActivity的主要代碼:
Intent intent=new Intent(MainActivity.this,TranActivity.class); intent.putExtra("bitmap", bitmap); startActivity(intent);
biitmap是 在onCreate方法中獲得的圖片對象 bitmap=BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
我們點擊圖片的時候,跳轉到TranActivity中;並且傳遞一個Bitmap作為參數
2。在TranActivity中接收MainActivity傳遞過來的Bitmap;
imageview=(ImageView)findViewById(R.id.trans_imageview); Intent intent=getIntent(); if(intent!=null) { bitmap=intent.getParcelableExtra("bitmap"); imageview.setImageBitmap(bitmap); }
在TranActivity中獲取Bitmap並給ImageView用來顯示圖片
缺點
如果傳遞的圖片比較大;會出現:android.os.TransactionTooLargeException
3。通過接受圖片之后,可以放大圖片
imageview = (ImageView) findViewById(R.id.trans_imageview); Intent intent = getIntent(); if (intent != null) { bitmap = intent.getParcelableExtra("bitmap"); Matrix matrix = new Matrix(); //接收圖片之后放大 1.5倍 matrix.postScale(1.5f, 1.5f); Bitmap bit = Bitmap.createBitmap(bitmap, 0, 0, bitmap.getWidth(), bitmap.getHeight(), matrix, true); imageview.setImageBitmap(bit); }
運行效果
TranActivity;放大之后效果