【问题标题】:Kotlin Android: Assigning Bitmap to Imageview [duplicate]Kotlin Android:将位图分配给 Imageview [重复]
【发布时间】:2020-05-30 03:41:57
【问题描述】:

我正在使用 Kotlin 前端/Python 后端构建应用程序。我的 python 脚本在 getFilesDir() 目录 (/data/user/0/com.example.inprogress/files/mygraph.png) 下创建了一个 .png 文件。然后我想使用 kotlin 来获取 .png 文件并将其显示在 imageview 上。

我的目标是将位图值分配给我的 imageview id graphId。

我使用下面的代码,但我得到的是空白图像视图,而不是我想要显示的 .png 文件。 请注意,我没有收到任何错误消息。我哪里做错了?

class GraphRes : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_graphres)

        var data = intent.extras
        var graph = data!!.get("res").toString()
        // graph is where the .png file is stored
        // graph: /data/user/0/com.example.inprogress/files/mygraph.png


        var graphId = ImageView(this)
        graphId.setImageBitmap(BitmapFactory.decodeFile(graph))

    }
}

【问题讨论】:

    标签: android kotlin bitmap android-bitmap


    【解决方案1】:

    你有READ_EXTERNAL_STORAGE的权限吗?

    如果你有,但它仍然不起作用,请尝试以下方法:

    graphId.setImageURI(Uri.fromFile(File(graph)));
    

    或者您也可以使用 Glide 库来显示您的图像,它会有效地做到这一点。

    【讨论】:

    • 谢谢。尝试了您的建议,但它仍然返回空白。我还注意到我的错误日志显示 2020-05-30 06:07:28.482 32011-32011/? E/mple.inprogres:runtime_flags 中设置的未知位:0x8000 知道这是什么吗?
    • 您可以在您的画廊中查看您的 png 吗?将其保存在可访问的位置并尝试在您的照片查看应用程序中查看它。也许你的 png 有问题
    • 我可以在图库中打开并查看我的 .png 文件,它保存在可访问的位置。
    • 好的,你可以做一些事情。首先,尝试调试并查看您的位图中是否有任何内容。其次,检查路径是否正确。 3、尝试使用 Glide 库。另外,尝试给予WRITE_EXTERNAL_STORAGE 权限
    • 当我调试时,我得到以下分配给 graphId 并且我可以打开我的 .png 文件。 mDrawable = {BitmapDrawable@10014} ""...查看位图
    猜你喜欢
    • 2014-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-25
    • 2015-10-06
    相关资源
    最近更新 更多