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

时间:2014-09-14 16:34:53

标签: android image-gallery android-gallery

我知道这个问题被问了很多但是它对我不起作用: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;
    }
}

对于一些reasone,startActivityForResult是红色下划线,如果我将onActivityResult的名称更改为代码上的ActivityForResult,它仍然是红色下划线。

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);
        }
    }
}

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

2 个答案:

答案 0 :(得分:0)

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

答案 1 :(得分: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);

这可以解决您的问题。