如何将图像的flex: 1
路径发送到另一个活动并将其转换为图像。我尝试了下面的
uri
并且像这样得到它
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK && data != null && data.getData() != null) {
//file name
Uri selectedImage = data.getData();
Intent i = new Intent(this,
AddImage.class);
i.putExtra("imagePath", selectedImage);
startActivity(i);
答案 0 :(得分:3)
将URI
转换为字符串,同时添加到Intent
,例如 - >
i.putExtra("imagePath", selectedImage.toString());
并在NextActivity
获取String
并转换回URI
,如 - >
Intent intent = getIntent();
String image_path= intent.getStringExtra("imagePath");
Uri fileUri = Uri.parse(image_path)
imageview.setImageUri(fileUri)
答案 1 :(得分:3)
第一项活动
Uri uri = data.getData();
Intent intent=new Intent(Firstclass.class,secondclass.class);
intent.putExtra("imageUri", uri.toString());
startActivity(intent);
第二课
Imageview iv_photo=(ImageView)findViewById(R.id.iv_photo);
Bundle extras = getIntent().getExtras();
myUri = Uri.parse(extras.getString("imageUri"));
iv_photo.setImageURI(myUri);
答案 2 :(得分:2)
使用来自调用活动的返回的uir然后将其设置为imageview,你可以这样做
Uri imgUri=Uri.parse(imagePath);
imageView.setImageURI(null);
imageView.setImageURI(imgUri);
这是一种用于刷新ImageButton的解决方法,它尝试缓存前一个图像Uri。传递null会有效地重置它。
要将inputStream转换为位图,您可以执行此操作
InputStream in = getContentResolver().openInputStream(Uri.parse(imagePath));
Bitmap bm = BitmapFactory.decodeStream(getContentResolver().openInputStream(in));
然后致电
image.setImageBitmap(bm);
将它设置为imageview, 您还可以查看此link以获取示例
希望我能帮忙答案 3 :(得分:1)
在Next活动中获取这样的URI;
Intent intent = getIntent();
String image_path= intent.getStringExtra("YOUR Image_URI");
并将Image_URI转换为Image使用下面提到的代码
File imgFile = new File(image_path);
if (imgFile.exists()) {
Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
imageView.setImageBitmap(myBitmap);
}
答案 4 :(得分:0)
要将图像Uri传递给下一个活动,您可以只使用multiprocessing.Queue
和setData()
。无需将Uri转换为任何东西。
getData()
Intent intent = new Intent(this, SecondActivity.class);
intent.setData(uri);
startActivity(intent);