gpt4 book ai didi

android - 来自 Google Drive Android Intent 的文件 View

转载 作者:可可西里 更新时间:2023-11-01 18:47:56 29 4
gpt4 key购买 nike

如果有人能提供帮助,我会非常棒。我正在构建一个应用程序,我试图访问我的文件并将它们显示在 ImageView 中。

我有一个按钮,我附加了一个 onClickListener

iButton.setOnClickListener(new View.OnClickListener() {   
@Override
public void onClick(View view) {
Intent photoPickerIntent = new Intent(Intent.ACTION_GET_CONTENT);
photoPickerIntent.setType("image/*");
startActivityForResult(Intent.createChooser(photoPickerIntent, "Select Picture"), 1);
}
});

Intent 给了我 3 个选项 Gallery、Dropbox 和 Google Drive

对于图库,我可以访问文件列表并将其显示在 ImageView 中

Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
imageHolder.setImageBitmap(BitmapFactory.decodeFile(picturePath));

对于 Dropbox,我是这样做的

imageHolder.setImageBitmap(BitmapFactory.decodeFile(selectedImage.getPath()));

但是我不确定如何为谷歌驱动器做这件事我试着像画廊那样做但是我收到以下错误

E/BitmapFactory:无法解码流:java.io.FileNotFoundException:/:打开失败:EISDIR(是目录)

如有任何帮助,我们将不胜感激。

最佳答案

正确答案最初在这里给出:Google Drive GET_CONTENT intent read file

解决方案是从 contentResolver 获取它作为 InputStream

我从任何地方获取图像的完整代码:

Uri selectedImage = imageReturnedIntent.getData();
if (selectedImage == null) {
return;
}
String[] filePathColumn = {MediaStore.Images.Media.DATA};

Cursor cursor = getContentResolver().query(selectedImage, filePathColumn, null, null, null);
if (cursor != null && cursor.moveToFirst()) {
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
mCurrentPhotoPath = cursor.getString(columnIndex);
cursor.close();
}

if (TextUtils.isEmpty(mCurrentPhotoPath)) {
mCurrentPhotoPath = selectedImage.getPath();
}
Bitmap bitmap = null;
if (imageReturnedIntent.getDataString() != null && imageReturnedIntent.getDataString().contains("docs.file")) {
try {
InputStream inputStream = getContentResolver().openInputStream(selectedImage);
bitmap = BitmapFactory.decodeStream(inputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}

if (bitmap == null) {
bitmap = BitmapFactory.decodeFile(mCurrentPhotoPath);
}

关于android - 来自 Google Drive Android Intent 的文件 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16992461/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com