将uri传递给另一个活动并将其转换为图像

时间:2015-09-19 05:13:02

标签: android

如何将图像的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);

5 个答案:

答案 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)

  1. 第一项活动

    Uri uri = data.getData();
    Intent intent=new Intent(Firstclass.class,secondclass.class);
    intent.putExtra("imageUri", uri.toString());
    startActivity(intent);
    
  2. 第二课

    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.QueuesetData()。无需将Uri转换为任何东西。

第一次活动

getData()

第二活动

Intent intent = new Intent(this, SecondActivity.class);
intent.setData(uri);
startActivity(intent);