Android:用Intent传送图片

【Android:用Intent传送图片】一身转战三千里,一剑曾百万师。这篇文章主要讲述Android:用Intent传送图片相关的知识,希望能为你提供帮助。
三种方法对应三种情况:
1.传送本地res中的图片
如果是本地res中的资源文件可以用intent.putExtra(""id"", R.id.xxx); 传递一个对应的id过去。在新activity中通过id取出图片。getResources().getDrawable(R.id.xxx);
传送图片的Activity:

private ListView lstmenu; private int[] imageid={R.drawable.pic1,R.drawable.pic2}; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_itemdetail); lstmenu=(ListView) findViewById(R.id.lstmenu); lstmenu.setOnItemClickListener(new AdapterView.OnItemClickListener() {@Override public void onItemClick(AdapterView< ?> parent, View view, int position,long id) { //点击的Item的内容通过参数带入itemActivity,并打开 Intent intent = new Intent(itemdetailActivity.this,itemActivity.class); //创建Intent intent.putExtra("detail_img",imageid[position]); //将要传递的信息放入Intent intent.putExtra("detail_text1",title[position]); //将要传递的信息放入Intent intent.putExtra("detail_text2",detail[position]); //将要传递的信息放入Intent startActivity(intent); }});
}

接收图片的Activity:
int img_id = getIntent().getIntExtra("detail_img",0); //接收图片的id img.setImageResource(img_id);

2.不是本地资源文件或者adapter中没有存储id
如果不是本地资源文件或者adapter中没有存储id,可以把drawable转为bitmap,用intent.putExtra(""bitmap"", bitmap); 传递过去。因为intent只能传递实现序列化的类,即继承java 的Serializable接口或者android的Parcelable接口。drawable没有实现该接口所以不能传递。
3.拉取的图片
如果是通过线程什么的从网上拉取的图片,可以定义一个下载的工具类,并定义一个static的静态Map集合,每拉取成功一张图片就把该图片存入Map中作为缓存。key是该图片的拉取地址。然后通过intent把地址传递过去。在新activity中通过该工具类取得静态map,并通过传递过来的地址中map中取出该图片。"


    推荐阅读