android intent传文件夹,Android:用Intent传送图片

本文介绍了三种在Android应用中处理图片传递的方法:通过资源ID、Bitmap转换、网络图片缓存。详细讲解了如何利用Intent传递本地资源、适配器外的图片,以及如何使用静态Map缓存网络图片并进行地址传递。
摘要由CSDN通过智能技术生成

三种方法对应三种情况:

1.传送本地res中的图片

如果是本地res中的资源文件可以用intent.putExtra(""id"", R.id.xxx);传递一个对应的id过去。在新activity中通过id取出图片。getResources().getDrawable(R.id.xxx);

传送图片的Activity:

privateListView lstmenu;private int[] imageid={R.drawable.pic1,R.drawable.pic2};

@Overrideprotected voidonCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activity_itemdetail);

lstmenu=(ListView) findViewById(R.id.lstmenu);

lstmenu.setOnItemClickListener(newAdapterView.OnItemClickListener() {

@Overridepublic void onItemClick(AdapterView> parent, View view, int position,longid) {//点击的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中取出该图片。"

原文:https://www.cnblogs.com/doggod/p/12115300.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值