我已经在同一个意图中从图库到图像视图拍摄图像。在图像视图上单击我想通过意图发送该图像另一个活动。

时间:2014-02-21 05:48:05

标签: android

代码:

 imgview.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // TODO Auto-generated method stub

            Intent i = new Intent(MainActivity.this,ImageDivision.class);
            Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
            i.putExtra("bmp_img", bmp);
            startActivity(i);
        }
    });

2 个答案:

答案 0 :(得分:1)

使用静态HashMap存储图像。 在图片上点击,只需将图片的名称放在HashMap中,您就可以通过名称获取图片。

public static HashMap<String, Bitmap> globalImageMap;

onImageClick:

Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.ic_launcher);
 globalImageMap.put(name,bmp);
 Intent intent= new Intent(this, ImageDivision.class);
intent.putExtra("ImageName",name);
startActivity(i);

ImageDivision.class:只需在HashMap中按名称查看图片。

       Intent intent = getIntent();
       String s = intent.getStringExtra("ImageName");   
       if (globalImageMap.containsKey(s)) {  
                yourImageView.setImageBitmap(globalImageMap.get(s));
}

答案 1 :(得分:0)

您需要将位图转换为字节[],然后您可以在其他活动中再次将byte []转换为位图。

位图到字节[]

ByteArrayOutputStream stream = new ByteArrayOutputStream();
bmp.compress(Bitmap.CompressFormat.PNG, 100, stream);
byte[] ba = stream.toByteArray();

Intent intent= new Intent(this, ImageDivision.class);
intent.putExtra("bmp_image",ba);
startActivity(i);

byte []到位图

byte[] ba= getIntent().getByteArrayExtra("bpm_image");
Bitmap bmp = BitmapFactory.decodeByteArray(ba, 0, ba.length);