当前位置: 首页 > 知识库问答 >
问题:

E/BitmapFactory:无法解码流:java.io.FileNotFoundException(没有这样的文件或目录)

越飞翮
2023-03-14

我试着从图库中打开图像并在Imageview中显示相同的活动。我添加了WRITE_EXTERNAL_STORAGE、READ_EXTERNAL_STORAGE、internet等权限。当我从图库中选择图像并返回活动时,它会显示这种类型的错误

09-04 15:02:57.161 316 42-31642/com.androidTutorialPoint.qrcodescanner E/BitmapFactory:无法解码流:java.io.FileNotFoundException:file:/storage/emulated/0/pictures/screenshots/screenshot_20180816-160721.png(没有这样的文件或目录)

这里是我的代码:-

>

  • 打开库的按钮单击事件:-

    BTN?.SetOnClickListener(html" target="_blank">对象:View.OnClickListener{覆盖乐趣onClick(arg0:View){

            val i = Intent(
                    Intent.ACTION_PICK,
                    android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI)
    
            startActivityForResult(i, RESULT_LOAD_IMAGE)
        }
    })
    
    if (requestCode == RESULT_LOAD_IMAGE && resultCode == Activity.RESULT_OK && null != data) {
        val selectedImage = data.data
        val filePathColumn = arrayOf(MediaStore.Images.Media.DATA)
    
        val cursor = contentResolver.query(selectedImage!!,
                filePathColumn, null, null, null)
        cursor!!.moveToFirst()
    
        val columnIndex = cursor.getColumnIndex(filePathColumn[0])
        val picturePath = cursor.getString(columnIndex)
        cursor.close()
    
        val imageView = findViewById(R.id.imageView) as ImageView
        imageView.setImageBitmap(BitmapFactory.decodeFile("file://" + picturePath))
    
    }
    
  • 共有1个答案

    林修真
    2023-03-14

    不要求query()返回您可以使用的文件系统路径。

    相反,将URI传递给您最喜欢的图像加载库(Glide、Picasso等)。它们可以将图像加载到ImageView中,在后台线程上执行所有I/O。

     类似资料: