gpt4 book ai didi

Android - 图像选择器,错误的图像

转载 作者:可可西里 更新时间:2023-11-01 19:05:46 26 4
gpt4 key购买 nike

我正在启动图片选择请求:

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

并在 onActivityResult 中取回数据:

if( resultCode == Activity.RESULT_OK && requestCode == PHOTO_GALLERY )
{
U.log( data.getData() );
Bitmap bm = ... // built from the getData() Uri
this.postImagePreview.setImageBitmap( bm );
}

当我启动 Intent 时,我看到一些文件夹,例如 sdcard , Drop Box , MyCameraApp , 等等。

如果我从 sdcard 中选择了一张图片,当我加载预览时,它是完全错误的图像。其他文件夹似乎没有给我这个问题。

有谁知道为什么它让我选择一张图片,然后给我另一张的 Uri?

编辑:这里有一些记录的例子getData()小号:

好:

content://com.google.android.gallery3d.provider/picasa/item/5668377679792530210

差:

content://media/external/images/media/28

编辑:从图库的 sdcard 文件夹中选取时,我仍然遇到问题。

这是我在 onActivityResult 中所做的更多扩展:

// cursor
Uri selectedImage = data.getData();

String[] filePathColumn = { MediaStore.Images.Media.DATA };

Cursor cursor = mContext.getContentResolver().query( selectedImage, filePathColumn, null, null, null );
cursor.moveToFirst();

int columnIndex = cursor.getColumnIndex( filePathColumn[0] );
String filePath = cursor.getString( columnIndex );
cursor.close();

// Cursor: /mnt/sdcard/Pic.jpg : /mnt/sdcard/Pic.jpg
U.log( "Cursor: " + filePath + " : " + Uri.parse( filePath ) );

// "regular"

// Regular: content://media/external/images/media/28 : content://media/external/images/media/28
U.log( "Regular: " + data.getDataString() + " : " + Uri.parse( data.getDataString() ) );

// Regular 2: content://media/external/images/media/28 : content://media/external/images/media/28
U.log( "Regular 2: " + data.getData() + " : " + data.getData() );


mPostImagePreview.setImageBitmap( BitmapFactory.decodeFile( filePath ) );
mPostImagePreview.setVisibility( View.VISIBLE );

他们仍然设置了错误的图像。如果我进入画廊,长按图像,然后查看其详细信息,我会得到:

TItle: Pic
Time: May 2, 2012
Width: 720
Height: 1280
Orientation: 0
File size: 757KB
Maker: Abso Camera
Model: Inspire 4G
Path: /mnt/sdcard/Pic.jpg

因此,图库告诉我路径与拾取操作相同,并且图库正确渲染了它。那么,如果我从 onActivityResult 设置它,到底为什么不渲染呢?

此外,这是我现在用来触发 Intent 的代码:

private void selectPhoto()
{
Intent intent = new Intent( Intent.ACTION_GET_CONTENT );
intent.setType( "image/*" );
( ( Activity )mContext ).startActivityForResult( Intent.createChooser( intent, "Select Picture" ), PHOTO_GALLERY );
}

最佳答案

有时图库应用中的缩略图可能会过时并显示不同图像的缩略图。当图像 ID 被重复使用时,例如当图像被删除并使用相同的 ID 添加新图像时,可能会发生这种情况。

管理应用 > 图库 > 清除数据可以解决这个问题。

关于Android - 图像选择器,错误的图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10288385/

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