【问题标题】:How to get the path of a Bitmap to use in Uri如何获取要在 Uri 中使用的位图路径
【发布时间】:2020-04-11 13:00:38
【问题描述】:

我正在尝试分享图片。为此,我需要位图的路径以在 Uri 中发送它。 我的当前行已弃用,具体取决于 API 结果为 Null。

            String path = MediaStore.Images.Media.insertImage(getContentResolver(), bitmap, "Challengers", null);

获取位图路径以使用 Uri 将位图共享给其他应用的正确方法是什么?

提前感谢您的帮助。

【问题讨论】:

  • 将您的Bitmap 保存到应用的内部存储中,然后设置FileProvider 以将其提供给外部应用。 this answer 中有一个非常完整的示例。

标签: java android


【解决方案1】:

终于找到了问题所在。我已经在 Manifest 中添加了权限,但还需要在 onCreate 中添加几行

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},requestCode);
    onRequestPermissionsResult(requestCode,new String[]{Manifest.permission.WRITE_EXTERNAL_STORAGE},grantResults);

【讨论】:

    【解决方案2】:

    这可能会有所帮助

    public static Bitmap getBitmapFromURL(String imgUrl) {
    try {
        URL url = new URL(imgUrl);
        HttpURLConnection connection = (HttpURLConnection) url.openConnection();
        connection.setDoInput(true);
        connection.connect();
        InputStream input = connection.getInputStream();
        Bitmap myBitmap = BitmapFactory.decodeStream(input);
        return myBitmap;
    } catch (IOException e) {
        // Log exception
        return null;
    }
    }
    

    【讨论】:

      【解决方案3】:

      你可以试试下面的代码来获取Image Uri,

      public Uri getImageUri(Context inContext, Bitmap inImage) {
        ByteArrayOutputStream bytes = new ByteArrayOutputStream();
        inImage.compress(Bitmap.CompressFormat.JPEG, 100, bytes);
        String path = Images.Media.insertImage(inContext.getContentResolver(), inImage, "Title", null);
        return Uri.parse(path);
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 2018-07-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多