需要使用URI发送然后接收和显示图像

时间:2017-03-26 22:03:01

标签: android android-intent imageview uri

我需要创建两个应用程序,一个允许您从设备中选择图像文件并使用意图发送它。我的代码是:

Intent shareIntent = new Intent(Intent.ACTION_SEND);
                shareIntent.setType("image/jpg");
                shareIntent.putExtra(Intent.EXTRA_STREAM, Uri.fromFile(file));
                shareIntent.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
                startActivity(Intent.createChooser(shareIntent, "Share image using"));

此代码似乎有效,因为如果我使用gmail作为我的设计,它似乎工作正常。

我的问题似乎在Recieve应用程序中我无法显示图像,我尝试使用BitmapFactory,创建drawable等。它们总是出现null。我甚至将以下代码放入我的发送应用程序中:

                Uri imageURI = Uri.fromFile(file);
                String string = imageURI.toString();
                string = string.replace("file://", "");
                Drawable d = Drawable.createFromPath(string);
                ImageView iv = (ImageView) findViewById(R.id.iv);
                iv.setImageDrawable(d);

显示图像正常,但是当代码放入接收应用程序时,d变为空。

我目前收到的代码如下:

  private void handleSendImage(Intent intent) throws FileNotFoundException {
        ImageView iv = (ImageView) findViewById(R.id.iv);
        Uri uri = (Uri) intent.getParcelableExtra(Intent.EXTRA_STREAM);
        if (uri != null) {
            iv.setImageURI(uri);
        }
    }

0 个答案:

没有答案