Android获取数据库图片uri路径并用imageView显示

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android获取数据库图片uri路径并用imageView显示相关的知识,希望对你有一定的参考价值。

打开相册把图片uri转为字符串存入数据库,取出来显示到imageview中显示不出来,老是停止运行闪退。把uri变为图片存储路径再显示到ImageView如何写

通过流的形式就可以了。通过路径得到文件流,然后使用bitmapfactory.decodeStream 方法 得到一个bitmap 然偶通过imageView.setImageBitmap()就ok了 参考技术A 我想问你最后怎么解决的,我也是这个问题,网上也查不到解决方法,很烦!

如何从android pie中的内容uri获取文件路径

我正在尝试使用retrofit 2.0上传图像。在onActivityResult获得uri后,我试图从uri获得路径,这是给出null。相同的代码在前棒棒糖设备中完美运行。

String[] filePathColumn = { MediaStore.Image.Media.DATA };
Cursor cursor = context.getContentResolver().query(inputUri,
                filePathColumn, null, null, null);
if (cursor != null) {
   cursor.moveToFirst();
   int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
   String filePath = cursor.getString(columnIndex);
   cursor.close();
// filePath is always null
   if (filePath != null && !filePath.isEmpty()) {
       file = new File(filePath);
   }
}
答案

这是完整的工作代码,用于从内容提供商那里获取所有apis的最后一张照片:

      public ArrayList<String> getNewPicturesUri(JobParameters parameters) {
    ArrayList<String> newPictures = new ArrayList<>();

    if (parameters.getTriggeredContentAuthorities() != null) {
        if (parameters.getTriggeredContentUris() != null) {
            ArrayList<String> ids = new ArrayList<>();
            for (Uri uri : parameters.getTriggeredContentUris()) {
                List<String> path = uri.getPathSegments();
                if (path != null && path.size() ==
                        Media.EXTERNAL_CONTENT_URI.getPathSegments().size() + 1) {
                    ids.add(path.get(path.size() - 1));
                }
            }

            if (ids.size() > 0) {
                StringBuilder selection = new StringBuilder();
                for (int i = 0; i < ids.size(); i++) {
                    if (selection.length() > 0) {
                        selection.append(" OR ");
                    }
                    selection.append(MediaStore.Images.ImageColumns._ID);
                    selection.append("='");
                    selection.append(ids.get(i));
                    selection.append("'");
                }

                Cursor cursor = null;
                try {
                    String[] projection = new String[]{
                            MediaStore.Images.ImageColumns._ID,
                            MediaStore.Images.ImageColumns.DATA};

                    cursor = getContentResolver().query(
                            Media.EXTERNAL_CONTENT_URI,
                            projection, selection.toString(), null, null);

                    if (cursor != null) {
                        while (cursor.moveToNext()) {
                            newPictures.add(cursor.getString(PROJECTION_DATA));
                        }
                    }
                } catch (SecurityException exception) {
                    FirebaseCrash.report(exception);
                } finally {
                    if (cursor != null) {
                        cursor.close();
                    }
                }
            }
        }
    }
    return newPictures;
}

以上是关于Android获取数据库图片uri路径并用imageView显示的主要内容,如果未能解决你的问题,请参考以下文章

android 通过 Uri.getPath() 获取真实路径

android选择图片,通过uri获取路径

android图片文件的路径地址与Uri的相互转换

android:怎样将Uri类型的图片数据转换成流

Android:如何获取匹配缩略图 URI 的文件路径?

安卓怎么根据图片路径调用系统相册查看这个图片?