在用intent傳資料時以字串居多
但是圖片無法直接傳遞
所以必須先將圖片先給予編碼
到新的Activity時
再給予解碼在imageview秀出
a.java裡
先抓取imageview上的Icon
- //Get Imageview Drawable and base64 to Intent
- Bitmap bitmap = ((BitmapDrawable)imageview.getDrawable()).getBitmap();
- ByteArrayOutputStream stream = new ByteArrayOutputStream();
- bitmap.compress(Bitmap.CompressFormat.JPEG, 100, stream );
- byte bytes[] = stream.toByteArray();
- String base64 = Base64.encodeToString(bytes, Base64.DEFAULT);
- String icontmp = base64;
- Intent i=new Intent();
- i.setClass(a.this, b.class);
- Bundle b1 =new Bundle();
- b1.putString("icon", icontmp);
- i.putExtras(b1);
- startActivity(i);
複製代碼
b.java裡
最後在imageview秀Icon
- //Get Intent String data
- label = getpackageinfo.getString("name");
- name = getpackageinfo.getString("label");
- icon = getpackageinfo.getString("icon");
- //decode base64 and Convert bitmap to drawable
- byte[] decode = Base64.decode(icon,Base64.DEFAULT);
- Bitmap bitmap = BitmapFactory.decodeByteArray(decode, 0, decode.length);
- //Set Icon to Imageview
- IV.setImageBitmap(bitmap);
複製代碼
這樣就可以了

參考文章
http://stackoverflow.com/questio ... tached-to-imageview
http://www.cnblogs.com/zhoujian315/p/3272571.html
https://www.kancloud.cn/digest/androidtome/117273
http://blog.csdn.net/lincyang/article/details/46596899
|