【问题标题】:Kotlin: How do I save the contents of an ImageView to the internal/external memory?Kotlin:如何将 ImageView 的内容保存到内部/外部存储器?
【发布时间】:2019-06-20 01:56:07
【问题描述】:

所以...我得到了这个简单的项目,当单击按钮时,使用意图打开相机,拍照,如果用户按下“确定”,则会在 ImageView 中显示照片图像,这是一个片段...

在一个按钮上,我调用相机意图并在 image_uri 变量中获得了结果 URI,因此我将此图像放入 ImageView 对象中:

imageView.setImageURI(image_uri)

现在,我想将此图像保存到内部/外部存储器或图库中。我在网上看到了很多答案,很多教程都说你必须使用buildDrawingCache() 方法,问题是,Android Studio 说这种方法在 Java 中已被弃用。

那我该怎么办?

PS:我对 Kotlin/Android 开发还很陌生,所以我不知道我必须给你哪些参数。我正在使用 Android Studio 3.4.1JRE: 1.8.0_152-release-1343-b01 使用 Windows 10

【问题讨论】:

    标签: android kotlin


    【解决方案1】:

    如果您从相机意图中获取图像,您可以将其作为位图获取并保存到您的存储中。

    class MainActity : AppCompatActivity() { 
       override fun onActivityResult(requestCode: Int, resultCode: Int, intent: Intent?) {
            super.onActivityResult(requestCode, resultCode, intent)
            //Get img from camera intent
            val img: Bitmap? = intent?.extras?.get("data") as Bitmap?
            img?.let { img ->
                 val root = Environment.getExternalStorageDirectory().absolutePath
                 val imgFile = = File(root, "myImg.jpg")
                 img.compress(Bitmap.CompressFormat.JPEG, 90, FileOutputStream(imgFile))
    
                 //Alert gallery to update images
                 val intent = Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE).apply {
                     data = Uri.fromFile(imgFile)
                 }
                 this@MainActivity.sendBroadcast(intent)
            }
    }
    

    【讨论】:

    • 谢谢!这就是我一直在寻找的,如何将图像转换为位图到文件
    猜你喜欢
    • 2021-06-02
    • 2019-07-01
    • 2019-06-27
    • 1970-01-01
    • 1970-01-01
    • 2018-04-20
    • 2015-06-14
    • 2018-02-20
    • 1970-01-01
    相关资源
    最近更新 更多