从android中的图库获取图像时出错

问题描述 投票:0回答:2

我知道这个问题被问了很多,但是它对我不起作用:S我通常试图使用它,但总会出现错误消息。

这是我试图导入的东西:

public boolean onMenuItemClicked(MenuScene pMenuScene, IMenuItem pMenuItem, float pMenuItemLocalX, float pMenuItemLocalY)
{
    switch(pMenuItem.getID())
    {
        case BACK:
            createMenuChildScene();
            Intent intent = new Intent();
            intent.setType("image/*");
            intent.setAction(Intent.ACTION_GET_CONTENT);
            startActivityForResult(Intent.createChooser(intent,"Select Picture"), SELECT_PICTURE);
            return true;
    }
}

出于某种原因,如果我将onActivityResult的名称更改为代码中的一个ONActivityResult,那么startActivityForResult是红色下划线,它仍然是红色下划线。

public void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) {
    super.onActivityResult(requestCode, resultCode, imageReturnedIntent); 

    switch(requestCode) { 
    case REQ_CODE_PICK_IMAGE:
        if(resultCode == RESULT_OK){  
            Uri selectedImage = imageReturnedIntent.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 filePath = cursor.getString(columnIndex);
            cursor.close();

            Bitmap yourSelectedImage = BitmapFactory.decodeFile(filePath);
        }
    }
}

在这里获取内容解析器不起作用或未定义:/我不知道我做错了什么:/

android image-gallery android-gallery
2个回答
0
投票

你正在尝试图像选择吗?你正在使用的那个已经过时,仅适用于KitKat以下的版本。我建议你使用google的文档提供程序,它更快更有效,并且doest给出OutOfMemory错误。 https://developer.android.com/guide/topics/providers/document-provider.html也适用于你的startActivityForResult应该正常工作,尝试File-> Invalidate Caches并选择Invalidate Caches并重启它应解决所有不必要的错误。祝好运!


0
投票

试试这个片段。

在onActivityResult中,在resultcode == Result_ok时放入此代码

case REQ_CODE_PICK_IMAGE:
            if(resultCode == RESULT_OK){
                Uri selectedImage = imageReturnedIntent.getData();
                bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), selectedImage);
                imageview.setImageBitmap(bitmap);

这解决了您的问题。

© www.soinside.com 2019 - 2024. All rights reserved.