首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Kotlin:如何将ImageView的内容保存到内部/外部内存?

Kotlin:如何将ImageView的内容保存到内部/外部内存?
EN

Stack Overflow用户
提问于 2019-06-20 01:56:07
回答 1查看 2.6K关注 0票数 0

所以..。我有一个简单的项目,当点击一个按钮使用一个意图打开相机,拍照,如果用户按下“确定”将显示照片图像在一个ImageView,这是一个片段.

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

代码语言:javascript
运行
复制
imageView.setImageURI(image_uri)

现在,我想将此图像保存到内部/外部内存或图库中。我看到了很多答案,还有很多在线教程,说明你必须使用buildDrawingCache()方法,问题是,Android说这种方法在Java中是不推荐的。

那我该怎么做?

PS:我对Kotlin/Android开发非常陌生,所以我不知道我需要给你提供哪些参数。我正在使用Android 3.4.1JRE: 1.8.0_152-release-1343-b01使用Windows 10

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-06-20 02:45:06

如果你从相机的意图得到一个图像,你可以得到它的位图和保存到你的存储。

代码语言:javascript
运行
复制
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)
        }
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56678011

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档