因此,我的应用程序应有意图地捕获图像,然后在其他活动中绘制该图像,但它不起作用。这是我的代码:
主要活动:

b1.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            Intent intent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
            File photo = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "pic.jpg");
            imageUri = Uri.fromFile(photo);
            startActivityForResult(intent, 2);
        }
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 2) {
        Intent k = new Intent(MainActivity.this, FullActivity.class);
        startActivity(k);
    }
}


第二项活动:

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     super.onActivityResult(requestCode, resultCode, data);
     Uri selectedImage = imageUri;
     iv.setImageBitmap(bp);
}


有人可以帮我看看问题出在哪里。提前致谢。

最佳答案

您需要将Uri作为字符串与Intent一起传递给MainActivity

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == 2) {
        Intent k = new Intent(MainActivity.this, FullActivity.class);
        k.putExtra("uri", imageUri.toString());
        startActivity(k);
    }
}


然后在FullActivity中获取字符串并将其解析为Uri,然后使用该字符串设置您的ImageView

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    ...
    String uriString = getIntent().getStringExtra("uri");
    Uri selectedImage = Uri.parse(uriString);
    // you may also need to call imageView.setImageURI(null); here
    // or get the bitmap first to use imageView.setImageBitmap();
    imageView.setImageURI(selectedImage);
}

10-07 20:40