【问题标题】:Android How can I using Cursor get image and video thumbnails in my direct path both?Android 如何使用光标在我的直接路径中获取图像和视频缩略图?
【发布时间】:2015-08-15 17:02:18
【问题描述】:

如何使用光标在同一光标的直接路径中获取图像和视频缩略图?

我需要在 /DCIM/100ANDRO 文件夹中获取图像和视频缩略图。

但我只能将图像和视频分开在 sd 卡中获取所有数据。

  private ArrayList<ImageItem> getData() {
          final ArrayList<ImageItem> imageItems = new ArrayList<>();

          ContentResolver cr = mContext.getContentResolver();

   String[] projection = {MediaStore.Images.Thumbnails.DATA, MediaStore.Video.Thumbnails.DATA};
          Cursor cursor = cr.query(MediaStore.Images.Thumbnails.EXTERNAL_CONTENT_URI,projection,null,null,null);

          for( int i = 0 ; i < cursor.getCount(); i++)
          {
              cursor.moveToPosition(i);
              String filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Images.Thumbnails.DATA));
              Log.i("info","filePath:"+filePath);
              File file = new File(filePath);

              Bitmap myBitmap =       BitmapFactory.decodeFile(file.getAbsolutePath());

              imageItems.add( new ImageItem(myBitmap, "Image#" + i) );
          }


          cursor =       cr.query(MediaStore.Video.Thumbnails.EXTERNAL_CONTENT_URI,projection,null,null,null);
          for( int i = 0 ; i < cursor.getCount(); i++)
          {
              cursor.moveToPosition(i);
              String filePath = cursor.getString(cursor.getColumnIndex(MediaStore.Video.Thumbnails.DATA));
              Log.i("info","filePath:"+filePath);
              File file = new File(filePath);

              Bitmap myBitmap = BitmapFactory.decodeFile(file.getAbsolutePath());

              imageItems.add( new ImageItem(myBitmap, "Image#" + i) );
          }

          cursor.close();
  return imageItems;
      }

是否可以使用光标直接文件夹来获取缩略图并同时获取视频和图像缩略图?

非常感谢。

【问题讨论】:

    标签: java android bitmap cursor


    【解决方案1】:

    我找到了答案。

    我们应该反转方法。

    我们可以找到真正的路径。然后获取ID。

    通过ID获取图片和视频的缩略图。

    使用光标获取图片和视频可以参考articles

    使用以下代码获取图片缩略图:

     bitmap = MediaStore.Images.Thumbnails.getThumbnail(context
                            .getApplicationContext().getContentResolver(), item.getImgId(),
                    MediaStore.Images.Thumbnails.MICRO_KIND, null);
    

    使用以下代码获取视频缩略图:

      bitmap = MediaStore.Video.Thumbnails.getThumbnail(context
                           .getApplicationContext().getContentResolver(), item.getImgId(),
                   MediaStore.Images.Thumbnails.MICRO_KIND, null);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-05
      • 2013-08-13
      • 2015-03-10
      • 1970-01-01
      • 2018-11-29
      • 1970-01-01
      相关资源
      最近更新 更多