gpt4 book ai didi

android - 从图库中选择图像不适用于 Redmi Note 4

转载 作者:太空狗 更新时间:2023-10-29 13:50:39 28 4
gpt4 key购买 nike

我在 S/O 上看到了其他几个与此相关的问题,但与我的问题最接近的那个似乎没有得到很多回复 ( Xiaomi MI device not picking image from Gallery )。希望这个问题有更好的运气。

我正在尝试从手机图库中选择一张图片,并将图片路径传递给另一个 Activity,在该 Activity 中为用户预览图片。

我已经在另外两台设备(Moto E 和 Coolpad?)上测试过了,它们似乎都运行良好。

(调试 Android 源代码似乎不是一个实用的选择。)

在主要 Activity 中,在 UI 触发器上,我使用以下代码启动图库选择器:

private void dispatchPickPictureIntent() {
Intent pickPictureIntent = new Intent(Intent.ACTION_PICK);
pickPictureIntent.setType("image/*");
startActivityForResult(pickPictureIntent, REQUEST_IMAGE_PICK);
}

我这样处理结果:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == REQUEST_IMAGE_PICK && resultCode == RESULT_OK) {
Uri selectedImage = data.getData();
mCurrentPhotoPath = getRealPathFromURI(this, selectedImage);
launchUploadActivity();
}
}

private String getRealPathFromURI(Context context, Uri uri) {
Cursor cursor = null;
try {
String [] proj = {MediaStore.Images.Media.DATA};
cursor = context.getContentResolver().query(uri, proj, null, null, null);
int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA);
cursor.moveToFirst();
return cursor.getString(column_index);
} finally {
if (cursor != null)
cursor.close();
}
}

一旦我将文件路径存储在全局变量 mCurrentPhotoPath 中,就会调用以下方法:

private void launchUploadActivity() {
Intent intent = new Intent(HomeActivity.this, UploadActivity.class);
intent.putExtra(getString(R.string.photo_path), mCurrentPhotoPath);
startActivityForResult(intent, REQUEST_IMAGE_UPLOAD);
}

即使在 Redmi 上,直到这里,一切都运行顺利。在 UploadActivity 的 onCreate 方法中,我成功收到了图像文件路径字符串。

但是,然后,我尝试预览图像:

private void previewPhoto() {
imageView.setVisibility(View.VISIBLE);
BitmapFactory.Options options = new BitmapFactory.Options();

// Avoid OutOfMemory Exception
options.inSampleSize = 8;

// This line returns a null, only on the Xiaomi device
final Bitmap bitmap = BitmapFactory.decodeFile(photopath, options);

imageView.setImageBitmap(bitmap);
}

现在我尝试调试这个问题,但是一旦我进入 BitmapFactory 的源代码,我就遇到了一个看似 Unresolved Android Studio 问题 (https://stackoverflow.com/a/40566459/3438497),这导致它毫无用处。

任何关于我如何从这里开始的指示都将不胜感激。

最佳答案

所以我能够将问题缩小到文件路径不正确。 Uri to filepath 函数并未在所有设备上获得预期的结果。

我使用了此处建议的方法:https://stackoverflow.com/a/7265235/3438497

并稍微调整了代码,以便在从图库中选取图像时,我直接使用图像的 Uri。

关于android - 从图库中选择图像不适用于 Redmi Note 4,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47977914/

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