Android-如何将 android.net.Uri 对象转换为 java.net.URI 对象?

标签 android uri android-bitmap fileinputstream

我正在尝试在用户从图片库中选择的图像上获取 FileInputStream 对象。这是 android.provider.MediaStore.Images.Media.INTERNAL_CONTENT_URI

返回的 android URI
content://media/external/images/media/3

当我尝试从这个对象构造一个 java URI 对象时,我得到一个 IllegalArgumentException 异常描述 Expected file scheme in URI: content://media/external/images/media/3 而 android URI 将方案显示为 content

更新: 从未找到原始问题的解决方案。但是如果你想要图片库中图片的字节流,这段代码就可以做到。

Bitmap bitmap = Media.getBitmap(getContentResolver(), imageUri);
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.JPEG, 40, bytes);
ByteArrayInputStream fileInputStream = new ByteArrayInputStream(bytes.toByteArray());

最佳答案

您可以结合使用基于 String 的 Java URIUritoString 方法.

android.net.Uri auri = new android.net.Uri(what ever);
java.net.URI juri = new java.net.URI(auri.toString());

Android URI | Java URI

关于Android-如何将 android.net.Uri 对象转换为 java.net.URI 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/559902/

相关文章:

java - AsyncTask 不调用 onPostExecute(Result result)

php - 无法通过php使用android模拟器将数据插入mysql

url - 是否可以在 ColdFusion 中访问矩阵参数(用分号分隔的名称-值对)?

android - 访问 Assets 文件夹中的视频以在 Android VideoView 中播放

android - Android 4.1.2 上 ImageView 中的倾斜图像

android - 如何将位图设置为 View Android API 10-18 的背景?

javascript - cordova.file 在 android 的 ionic 项目中未定义

java - 带有特殊字符的 URI.getHost()

java - 如何裁剪位图的四个边?

android - Retrofit 2 下载图像并保存到文件夹