【问题标题】:How to transfer a Uri image from one activity to another?如何将 Uri 图像从一个活动转移到另一个活动?
【发布时间】:2015-04-05 14:08:10
【问题描述】:

在我的应用中,我需要将 Uri 图像从我的第一个 Activity 传输到另一个。我知道如何通过意图发送位图。我是一个大程序员,所以我不知道该怎么做:根据意图传输 Uri 或将 Uri 更改为位图然后发送?

【问题讨论】:

  • 如果它只是一个进程,只需在您的活动类中添加一个公共静态字段并在执行意图之前为其分配 Uri。
  • 你能用示例代码回答一下吗?如果可行,我会很乐意接受。
  • 不要通过意图发送整个位图;发送 uri 本身作为额外的

标签: java android android-intent bitmap uri


【解决方案1】:

使用 putExtra 发送 Uri 路径:

            Intent intent = new Intent(Intent.ACTION_VIEW);
            intent .setClass(ThisActivity.this,  NewActivity.class);
            intent .putExtra("KEY", Uri);
            startActivity(intent );

在newActivity的OnCreate方法中:

   Bundle extras = getIntent().getExtras();
    if (extras != null && extras.containsKey("KEY")) {
        Uri= extras.getString("KEY");
    }

使用这些功能: Uri 转字符串:

Uri uri;
String stringUri;
stringUri = uri.toString();

Uri 的字符串:

Uri uri;
String stringUri;
uri = Uri.parse(stringUri);

【讨论】:

  • 第二个Activity如何访问Uri?
  • 我将按钮代码放在 Uri 中的第二个 Activity 中,但出现错误,我应该将它放在字符串中
  • 非常感谢!一般来说,代码有效,但我想要使用它的方式的转换却没有。我想从图库中拍摄一张照片,然后将其放在另一个 Activity 的相机预览上。当我转移到相机预览页面时,应用程序崩溃了,我真的不知道为什么......我附上了从画廊和相机预览活动中挑选照片的活动的链接,如果可以的话,请帮助我。 docs.google.com/document/d/…docs.google.com/document/d/…
【解决方案2】:

为避免您遇到的错误,在 Miki franko 给出的代码中,替换以下行:

Uri= extras.getString("KEY");

与:

uri= Uri.parse(extras.getString("KEY"));

这只是为了使代码正常工作,因为我认为您没有理解 Miki 试图通过代码解释的内容。
如果您现在解决了问题,请随时通知我们。

【讨论】:

    【解决方案3】:
            //First Activity to get a Uri
            String uri_Str = Uri.toString();
    
            Intent intent = new Intent(FirstActivity.this,SecondActivity.class);
            intent .putExtra("uri_Str", uri_Str);
            startActivity(intent);
    
    
           //Second Activity get a Uri path
            Bundle b = getIntent().getExtras();
            if (b != null) {
            String uri_Str= b.getString("uri_Str");
            Uri uri = Uri.parse(uri_Str);
            }
    

    【讨论】:

      【解决方案4】:
      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);
        

      【讨论】:

        【解决方案5】:

        在您的第一堂课中,您可以像这样传递图像 uri:

        Intent intent = new Intent();
        intent.putExtra("your_key", imageUri.toString());
        startActivity(intent);
        

        并且在第二个或接收者活动中,您可以通过这种方式访问​​图像 uri:

        Bundle extras = getIntent().getExtras();
        if(extras != null){
          Uri imageUri = Uri.parse(extras.getString("your_key"));
        }
        

        【讨论】:

          猜你喜欢
          • 2018-02-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多