android - 保存时从照片中获取 ID

标签 android android-intent camera

在我的应用程序中,我拍了一张照片并将其保存在手机上。

我是这样做的:

private void takePic() {
    ContentValues values = new ContentValues();
    String TITLE = null;
    values.put(MediaColumns.TITLE, TITLE);
    String DESCRIPTION  = null;
    values.put(ImageColumns.DESCRIPTION, DESCRIPTION);
    values.put(MediaColumns.MIME_TYPE, "image/jpeg");
    imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
    Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
    intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
    intent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);

    startActivityForResult(intent, IMAGE_CAPTURE);
}

我现在的问题是,我稍后想要获取此图片的缩略图以在我的 ListView 中显示缩略图。有没有办法获取我拍摄的照片的 ID 并将其保存到我的 Intent 或类似的东西?

最佳答案

您可以尝试通过查询 MediaStore.Images.Media.DATA 来获取您在 MediaStore Content Provider 中拥有的 Media Uri

protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode==RESULT_OK ){
          if(requestCode == IMAGE_CAPTURE){
                  // get Media Uri from data

                  Uri media_uri = data.getData();
                  String[] column = {MediaStore.Images.Media._ID};

                  Cursor cursor = getContentResolver().query(media_uri, column, 
                                                               null, null, null);
                  cursor.moveToFirst();
                  if(cursor.getCount()>0){
                    int Media_ID = cursor.getInt(cursor  
                             .getColumnIndex(MediaStore.MediaColumns._ID)); 
                    //... store media ID here..
                  }
                 cursor.close();
           }
        }
    }

关于android - 保存时从照片中获取 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675655/

相关文章:

android - 从最近的托盘中删除 Android 应用程序时,Firebase(FCM)通知不会出现

当传输数据的长度超出范围时,Android Beam 失败

android - 两个 Activity 之间的共享元素转换问题

Android MediaStore.ACTION_IMAGE_CAPTURE 和 Intent.ACTION_PICK

javascript - SCRIPT438 : Object doesn't support property or method 'create' - THREE. JS 相机\Camera.js

c++ - Ubuntu 19.10 : Enabling and using Raspberry Pi Camera Module v2. 1

android - kotlin sqlite 创建两个表

java - 使用android将Intent存储在SQLite数据库中

android - 在 Android 中是否可以让相机聚焦在预览中的特定点?

android - 重新加载 fragment ,未清除 Edittext 的文本