我有一个代码从我的设备库中选择一张图片,代码就像我使用的那样。
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);
}
我收到此代码的错误,有人可以帮助我吗?多谢你们 !! 对不起,我的英语不好。
答案 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);
}