我知道这个问题被问了很多但是它对我不起作用: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);
}
}
}
此处获取的内容解析器不起作用或未定义:/ 我不知道我做错了什么:/
答案 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);
这可以解决您的问题。