相册和Dropbox应用程序

时间:2012-10-12 13:40:47

标签: android dropbox android-sdcard android-photos

这是我如何解决从相册中获取照片的意图

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

然后从结果中我走

的路径
 Uri selectedImageUri = data.getData();

public String getPath(Uri selectedImageUri) {
    String[] projection = { MediaStore.Images.Media.DATA };
    Cursor cursor = managedQuery(uri, projection, null, null, null);
    int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
    cursor.moveToFirst();
    return cursor.getString(column_index);
}

所选图片并将该图片放入SD卡。

但是当安装了Dropbox应用程序时,它也出现了,当我选择图像时,Uri就像

文件:///mnt/sdcard/Android/data/com.dropbox.android/files/scratch/FloorPlanImage/7th_floor_new.jpg

现在当我尝试使用getPath时,它会崩溃。你能告诉我如何解决这个问题,以便我可以采取图像路径并将其保存在SD卡中吗?

2 个答案:

答案 0 :(得分:1)

我得到的问题是什么

int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);

没有返回任何内容,因为图像是从Dropbox中选择的,而不是从android的照片库中选择的。

所以我在选择图像时使用Uri并使用它来设置ImageView并且效果很好。

谢谢!

答案 1 :(得分:1)

使用以下代码,这对我来说非常合适

Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(
                    Intent.createChooser(intent, "Upload photo"),
                    RESULT_LOAD_IMAGE);

在'onActivityResult'中编写以下代码

protected void onActivityResult(final int requestCode, int resultCode,
            Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK
                && null != data) {


Uri selectedImage = data.getData();
imageView.setImageURI(selectedImage);


        } else

        if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
            photo = (Bitmap) data.getExtras().get("data");
            imageView.setImageBitmap(photo);

        }
}