从图库中选择一张图片,在pic图片之后,我想在不同的页面上显示它

时间:2017-10-17 12:53:15

标签: java android

我有一个代码从我的设备库中选择一张图片,代码就像我使用的那样。

    Intent getintent = new Intent(Intent.ACTION_GET_CONTENT);
    getintent.setType("image/*");

    Intent pickintent = new Intent(Intent.ACTION_PICK, 
    MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
    pickintent.setType("image/*");

    Intent chooserintent = Intent.createChooser(getintent, "Select Image");
    chooserintent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] {pickintent});
    startActivityForResult(chooserintent, SELECT_PICTURE);
    chooserintent.putExtra("data", SELECT_PICTURE);

我可以将图片作为额外内容发送给另一个意图吗?这是我的第二页代码,显示我在第一个活动中选择的图片

    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_showpic2);

    findViewById(R.id.imageButton); // Replace with id of your button.
    Intent intent = getIntent();
    Bitmap gambar = intent.getData("data");
    ImageView imageView = (ImageView) findViewById(R.id.imageView);
    imageView.setImageBitmap(gambar);
}

我收到此代码的错误,有人可以帮助我吗?多谢你们 !! 对不起,我的英语不好。

1 个答案:

答案 0 :(得分:1)

您不需要将实际图像的位图放入意图中。从画廊回来后,您将获得Uri。此uri指向所选图像。要在另一个活动上显示此图像,您应该做的是将该Uri传递给第二个活动。

First Activity' s onActivityResult

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode == REQ_ID && resultCode == RESULT_OK && data != null){
        Uri uri = data.getData();
        Intent intent = new Intent(context, SecondActivity.class);
        intent.putExtra("imageUri", uri);
        startActivity(intent);
    }
}

在第二个活动onCreate

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_showpic2);

    Uri uri = intent.getParcelableExtra("imageUri");
    ImageView imageView = (ImageView) findViewById(R.id.imageView);
    imageView.setImageUri(uri);
}