Android 两个Activity之间怎样传递图片 点击图片后图片传给下一个ACtivity。

publicclassshowextendsActivity{privateGridViewgridview;privateImageViewbig_imageView;... public class show extends Activity {

private GridView gridview;
private ImageView big_imageView;
private ImageAdapter myImageViewAdapter;

public class ImageAdapter extends BaseAdapter {
private Context mContext;
private Integer[] mImageIds ={
R.drawable.img1,
R.drawable.img2,
R.drawable.img3,
R.drawable.img4,
R.drawable.img5,
R.drawable.img6,
R.drawable.img7,
R.drawable.img8,
R.drawable.img9,
};
// 内部类的构造方法
public ImageAdapter(Context c){
mContext = c;
}
//返回资源ID数组长度
public int getCount(){
return mImageIds.length;
}
//得到Item
public Object getItem(int position){
return position;
}
//获取Items的ID
public long getItemId(int position){
return position;
}
//获取要显示的View对象
public View getView(int position, View convertView, ViewGroup parent){
ImageView imageView;
if (convertView == null){
//创建一个ImageView
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(80, 80));
imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);
}
else{
imageView = (ImageView) convertView;
}
//设置图像源于资源ID
imageView.setImageResource(mImageIds[position]);
//创建一个ImageView
return imageView;
}
public Integer getcheckedImageIDPostion(int theindex) {
return mImageIds[theindex];
}
}
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
setContentView(R.layout.main);
gridview = (GridView)findViewById(R.id.gridview);
myImageViewAdapter = new ImageAdapter(this);
gridview.setAdapter(myImageViewAdapter);
gridview.setBackgroundResource(R.drawable.bg0);
//为GridView添加事件监听器
gridview.setOnItemClickListener(new OnItemClickListener() {
public void onItemClick(AdapterView<?> parent, View v, int position, long id){

}
});
}
}
展开
 我来答
day忘不掉的痛
2015-02-05 · 知道合伙人数码行家
day忘不掉的痛
知道合伙人数码行家
采纳数:62646 获赞数:223934
本人担任公司网络部总经理多年,有充足的网络经验、互联网相关知识和资讯。

向TA提问 私信TA
展开全部
"1、如果是本地res中的资源文件可以用intent.putExtra(""id"", R.id.xxx);传递一个对应的id过去。在新activity中通过id取出图片。getResources().getDrawable(R.id.xxx);
2、如果不是本地资源文件或者adapter中没有存储id,可以把drawable转为bitmap,用intent.putExtra(""bitmap"", bitmap);传递过去。因为intent只能传递实现序列化的类,即继承java 的Serializable接口或者android的Parcelable接口。drawable没有实现该接口所以不能传递。
3、如果是通过线程什么的从网上拉取的图片,可以定义一个下载的工具类,并定义一个static的静态Map集合,每拉取成功一张图片就把该图片存入Map中作为缓存。key是该图片的拉取地址。然后通过intent把地址传递过去。在新activity中通过该工具类取得静态map,并通过传递过来的地址中map中取出该图片。"
Radixxx
推荐于2016-06-20 · TA获得超过108个赞
知道答主
回答量:62
采纳率:0%
帮助的人:31.3万
展开全部

使用Intent:

1、在ImageAdapter中增加一个根据点击位置获取图片资源id的方法:

public int getClickedImageResId(int position){
    return mImageIds[position];
}


2、在gridview的setOnItemClickListener中实现值传递:

gridview.setOnItemClickListener(
        new OnItemClickListener() {
            public void onItemClick(AdapterView<?> parent, 
                    View v, int position, long id){
                Intent intent = new Intent(show.this, NextActivity.class);
                // 第一个参数是key, 第二个参数是要传递的值
                intent.putExtra("image_res_id", 
                        myImageViewAdapter.getClickedImageResId(position));
                show.this.startActivity(intent);
          }
        });


3、在NextActivity的onCreate()方法中使用getIntent()方法获取传递的值:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_next);
    // 第一个参数是key, 第二个参数是若给定key对应的值不存在则默认的返回值
    int imageResId = getIntent().getIntExtra("image_res_id", -1);
    // imageResId就是传递过来的值,可以像ImageAdapter中
    // 使用Image一样imageView.setImageResource(imageResId);
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
q245219311
2012-06-14 · TA获得超过353个赞
知道小有建树答主
回答量:457
采纳率:0%
帮助的人:353万
展开全部
点击图片,然后得到图片的id,之后传那个id就行了。用intent的putextra方法
追问
能麻烦您帮我写一下 发送和接收 具体代码么?我怎么老是系统停止响应?
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式