android从相机的文件夹中打开照片

时间:2012-03-05 20:46:12

标签: android directory android-image

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

  1. 如何获取相机保存图像的文件夹?
  2. 有任何控件可以让我选择多个文件(比如.Net中的winform中的OpenFile对话框)?

1 个答案:

答案 0 :(得分:2)

此代码将使用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));

        }
    }