【问题标题】:Sending selected image from gallery to another activity将所选图像从图库发送到另一个活动
【发布时间】:2015-11-04 16:42:14
【问题描述】:

这是我第一次使用图像。

我创建了一个活动,我将从图库中挑选一张图片,并且我希望在单击按钮时将该图片传递给下一个活动。

【问题讨论】:

  • 只需要通过 Intent extras 将文件 url 传递给下一个活动,但请尝试并在之前发布您的代码。

标签: android android-activity android-gallery


【解决方案1】:

一个简单的解决方案是通过 Intent 传递它的 Uri。

第一个活动:

Uri imageUri = /* This is the Uri you got from the gallery */
Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
intent.putExtra("image-uri", imageUri.toString());
startActivity(intent);

第二个活动:

Intent intent = getIntent();
Uri imageUri = Uri.parse(intent.getStringExtra("image-uri"));
/* Do something with imageUri */

【讨论】:

    【解决方案2】:

    可能的方法是:

    1 - 在onActivityResult()上获取图片或图片网址后存储它

    2 - 在您的按钮的 OnClickListener() 中,在您的意图中添加一个额外的(如果您已经拥有位图)。

    button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent i = new Intent(CurrentActivity.this, NewActivity.class);
                i.putExtra("image", yourImage);
                CurrentActivity.this.startActivity(i);
            }
        });
    

    3 - 获取新 Activity 的额外内容(在 onCreate() 中)。

    Intent intent = getIntent();
    
        if (intent.getExtras() != null){
            loadedImage = intent.getParcelableExtra("image");
        }
    

    【讨论】:

    • 图片应从图库中选择。它没有放在 Drawable 中。
    • 是的,我明白这一点。但是,当您浏览图库并选择一张图片时,您会在 protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { super.onActivityResult(requestCode, resultCode, imageReturnedIntent);} 中处理结果数据。我假设您已经完成了这项工作。每当您到达此位置时,您都会收集结果 url(选定的图像 url),然后您可以获得图像。在此之后,您按照我在答案中所说的操作,它将起作用
    【解决方案3】:

    首先从您的 imageview 图像创建位图

    BitmapDrawable drawable = (BitmapDrawable) imageView.getDrawable();
    Bitmap bitmap = drawable.getBitmap();
    

    其次,通过intent将位图传递给另一个activity

    Intent intent = new Intent(this, NewActivity.class);
    intent.putExtra("BitmapImage", bitmap);
    

    最后,在您的新活动中,从意图中获取位图并将其设置到图像视图中

    Intent intent = getIntent();
    Bitmap bitmap = (Bitmap) intent.getParcelableExtra("BitmapImage");
    imageView.setBitmap(bitmap);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-21
      • 2016-11-04
      相关资源
      最近更新 更多