从列表视图将图像从一个活动发送到另一个活动

时间:2013-03-26 16:14:29

标签: android android-intent bitmap android-imageview

我有一个列表视图,显示图像,名称,价格。

我想要做的是点击该列表我应该将图像的名称和价格发送到下一个活动。

Intent in = new Intent(getApplicationContext(), DescActivity.class);
ImageView img=(ImageView)view.findViewById(R.id.list_image);
String name=((TextView) view.findViewById(R.id.name)).getText().toString();
String price=((TextView) view.findViewById(R.id.price)).getText().toString();
Bitmap bitmap = img.getDrawingCache();
in.putExtra("IMAGE", bitmap);
in.putExtra("NAME",name );
in.putExtra("PRICE", price);
startActivity(in);

但上面的代码不起作用。请帮我。我坚持了3天:'(

3 个答案:

答案 0 :(得分:0)

你试过这个吗,

Intent i = new Intent(this, SecondActivity.class);
Bitmap b = img.getDrawingCache();
ByteArrayOutputStream bs = new ByteArrayOutputStream();
b.compress(Bitmap.CompressFormat.PNG, 50, bs);
i.putExtra("myImage", bs.toByteArray());
startActivity(i);

然后在你的下一个活动中使用

if(getIntent().hasExtra("myImage")) {
    ImageView image = new ImageView(this);
    Bitmap b = BitmapFactory.decodeByteArray(
        getIntent().getByteArrayExtra("myImage"),0,getIntent().getByteArrayExtra("myImage").length);        
    image.setImageBitmap(b);
}

答案 1 :(得分:0)

试试这个 - 在第一个活动中使位图静态。即

static Bitmap bitmap = img.getDrawingCache();

和第二项活动 -

 Bitmap _mBitmap=FirstAcitivity.bitmap;

答案 2 :(得分:0)

你也可以使用这个 - 在第一项活动中 -

   Drawable drbl=_imageView.getDrawable();
   Bitmap bit = ((BitmapDrawable)drbl).getBitmap();
   intent.putExtra("Bitmap",bit);

在第二项活动中 -

 Bitmap _mBitmap=intent.getParcelableExtra("Bitmap");
 Drawable _mDrawable=new BitmapDrawable(getResources(),_mBitmap);