【问题标题】:Pick Image from gallery works fine on emulator but not on device从图库中选择图像在模拟器上可以正常工作,但在设备上却不行
【发布时间】:2018-02-06 15:14:09
【问题描述】:

您好,我是 android 的初学者。我正在编写代码以从图库中选择图像。我的代码在带有 Lollipop 5.1.1 的 Nexus_S 模拟器上运行良好,但不能在设备上运行(带有 Lollipop 5.1.1 的摩托罗拉 E2) 这是我的代码,

     @Override
    public void onClick(View v)
    {
        if(v.getId()==R.id.layout_pickImage)
        {
            Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
            intent.setType("image/*");
            intent.putExtra("return-data", true);
            startActivityForResult(intent, Utilities.REQUEST_ADD_IMAGE);
        }
    } 

 @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        super.onActivityResult(requestCode, resultCode, data);

        if(requestCode==Utilities.REQUEST_ADD_IMAGE)
        {
            if(data!=null)
            {
                final Bundle extras = data.getExtras();
                if (extras != null)
                {
                    try{
                        Uri uri = data.getData();

                        selected_img_bitmap = MediaStore.Images.Media.getBitmap(getContentResolver(), uri);
                        imgv_selected.setImageBitmap(selected_img_bitmap);

                        imgv_selected.setVisibility(View.VISIBLE);
                    }catch(Exception e)
                    {
                        Toast.makeText(this, "error "+e, Toast.LENGTH_SHORT).show();
                    }
                }
            }
        }
    }

【问题讨论】:

  • 错误是什么?
  • data.getExtras();返回空
  • Toast.makeText(this, data.getData().toString(), Toast.LENGTH_LONG).show();。 `
  • final Bundle extras = data.getExtras(); if (extras != null) 只需删除这两行。

标签: android


【解决方案1】:

为什么你需要额外的东西?您没有在任何地方使用它。只需删除那些额外的东西,它应该可以工作。

onActivityResult 看起来像这样:

@Override
public void onActivityResult ( int requestCode, int resultCode, Intent data ) {
    super.onActivityResult( requestCode, resultCode, data );

    if ( requestCode == Utilities.REQUEST_ADD_IMAGE ) {
        if ( data != null ) {
            try {
                Uri uri = data.getData();

                selected_img_bitmap = MediaStore.Images.Media.getBitmap( getContentResolver(), uri );
                imgv_selected.setImageBitmap( selected_img_bitmap );

                imgv_selected.setVisibility( View.VISIBLE );
            } catch ( Exception e ) {
                Toast.makeText( this, "error " + e, Toast.LENGTH_SHORT ).show();
            }
        }
    }
}

如果它解决了你的问题,请告诉我

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多