0

Why is my code not functioning? i want to transfer image from one activity to another. Please help! Note: I have create a camera function and thats where I get image.

This is the MainActivity.java

public class MainActivity extends AppCompatActivity {

public static final int CAMERA_REQUEST = 9999;

ImageView imageView1;
Button camera,send;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    imageView1 = findViewById(R.id.imageView1);
    camera = findViewById(R.id.camera);
    send = findViewById(R.id.send);

    camera.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            Intent d1 = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
            startActivityForResult(d1, CAMERA_REQUEST);
        }
    });

    send.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            imageView1.buildDrawingCache();
            Bitmap bitmap = imageView1.getDrawingCache();

            Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
            intent.putExtra("bp", bitmap);

        }
    });
}

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    imageView1.setImageBitmap(bitmap);
}
}

This is the ResultActivity.java

public class ResultActivity extends AppCompatActivity {

ImageView imageView2;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);

    imageView2 = findViewById(R.id.imageView2);

    Intent intent = new Intent();
    Bitmap bitmap = intent.getParcelableExtra("bp");
    imageView2.setImageBitmap(bitmap);
    }
}  

If I've done something wrong. Please let me know. Thankssss

student76
  • 21
  • 3
  • go for this link you will get help https://stackoverflow.com/questions/11010386/passing-android-bitmap-data-within-activity-using-intent-in-android – Rishav Singla Mar 03 '19 at 07:16

1 Answers1

0

Youre already receiving the bitmap as a Uri in the intent received in 'OnActivityResult'. All you have to do is to use this intent to move to the second activity. Then from there you can convert it to bitmap:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    Intent intent = new Intent(MainActivity.this, ResultActivity.class);  
    intent.putExtra("Some key",data.getData().toString());
    Bitmap bitmap = (Bitmap) data.getExtras().get("data");
    imageView1.setImageBitmap(bitmap);
}
}

On ResultActivity:

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_result);
    Uri uri = Uri.parse(getIntent.getExtra.getString("Some key"));
    imageView2 = findViewById(R.id.imageView2);
Bitmap bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);

    imageView2.setImageBitmap(bitmap);
    }
}