【问题标题】:android open photos from camera's folderandroid从相机文件夹中打开照片
【发布时间】:2012-03-05 20:46:11
【问题描述】:

我的应用程序需要打开几张图片。我需要允许用户从他收藏的图片中进行选择并在我的应用程序中使用。我有两个问题:

  1. 如何获取相机保存图片的文件夹?
  2. 是否有任何控件允许我选择多个文件(类似于 .Net 中 winform 中的 OpenFile 对话框)?

【问题讨论】:

  • 他是在您的应用程序内部还是外部使用相机拍照?我相信您可以使用意图打开相机,拍照,然后返回该照片。
  • 图片已经在那里了。我不需要打开相机,而是使用现有的图片。我需要创建几个现有图像的拼贴画。我想识别文件夹并找到一种允许选择多个文件的方法。

标签: android directory android-image


【解决方案1】:

此代码将使用 Intent 操作启动系统活动或任何已注册的应用,并允许您从图库(相册、相机照片等)中选择图像

....
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, CHOOSE_FILE_RESULT_CODE);
.....



public void onActivityResult(int requestCode, int resultCode, Intent data) {
        // User has picked an image. 
        Uri uri = data.getData();
        //File URI.. 

    }

如果您只需要摄像头图像,您可以通过以下方式通过在存储桶名称上过滤摄像头图像来获取摄像头图像列表。在这种情况下,您可以阅读缩略图并将其显示在您自己的活动中并要求用户选择。

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        String[] projection = {
                MediaStore.Images.Media._ID, MediaStore.Images.Media.BUCKET_DISPLAY_NAME,
                MediaStore.Images.Media.DISPLAY_NAME
        };
        String selection = MediaStore.Images.Media.BUCKET_DISPLAY_NAME + " = ?";
        String[] selectionArgs = new String[] {
            "Camera"
        };
        Cursor mImageCursor = managedQuery(MediaStore.Images.Media.EXTERNAL_CONTENT_URI,
                projection, selection, selectionArgs, null);

        while (mImageCursor.moveToNext()) {
            Log.d("TestActivity", mImageCursor.getString(1) + "    " + mImageCursor.getString(2));

        }
    }

【讨论】:

  • 如何在 ACTION_GET_CONTENT 上打开默认相机的文件夹?
  • 检查我对答案的编辑。我不知道是否可以使用带有意图操作“ACTION_GET_CONTENT”的 Gallery 应用程序将其带到特定文件夹(即存储桶,如果您认为 MediaStore)。我会试着找到答案。
  • 我使用此代码我只能选择一个文件我如何选择多个文件
猜你喜欢
  • 1970-01-01
  • 2013-12-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-05-20
  • 1970-01-01
  • 2011-11-08
  • 1970-01-01
相关资源
最近更新 更多