美文网首页
Android Studio kotlin 保存图片到系统相册

Android Studio kotlin 保存图片到系统相册

作者: StormerX | 来源:发表于2019-08-12 23:52 被阅读0次

    不得不说太恶心了,实现这么个功能折腾了大半天!搜索引擎搜出来的结果五花八门乱七八糟的(到现在为止我还不知道如何获取到系统相册的路径)。


    来介绍一下我的实现方法吧。

    需求是:把ImageView里的图片保存到系统相册。

    1、 在ApplicationMainfest。xml中添加申请磁盘读写权限

    <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
    

    2、动态申请磁盘读写权限,上面这样写还不能获得权限,所以要动态申请一下,方法很多这里简单写下吧。

    在MainActivity代码里定义一个方法。

    fun GetPermission()
        {
            if (Build.VERSION.SDK_INT >= 23) {
                val REQUEST_CODE_CONTACT = 101
                val permissions = arrayOf<String>(Manifest.permission.WRITE_EXTERNAL_STORAGE)
                //验证是否许可权限
                for (str in permissions) {
                    if (this.checkSelfPermission(str) != PackageManager.PERMISSION_GRANTED) {
                        //申请权限
                        this.requestPermissions(permissions, REQUEST_CODE_CONTACT)
                    }
                }
            }
        }
    

    然后调用一下。


    3、在布局中加入ImageView,然后随便绑定一张本地图片(实际应用的时候应该是网络图片,本例就不赘述了,保存图片的方法一样)

    4、布局中加入一个按钮,给它加上点击事件处理。

    5、在按钮点击事件里保存图片。把ImageView的内容取出,接着使用MediaStore的方法把图片内容保存到系统相册

            this.bSave.setOnClickListener()
            {
                println("bSave clicked!")
    
                val draw = this.imageView_photo.drawable as BitmapDrawable
                val bitmap = draw.bitmap
    
                MediaStore.Images.Media.insertImage(
                    contentResolver,
                    bitmap!!,
                    "image_file",
                    "file")
    
            }
    
    

    运行效果

    点击按钮后图片被保存到系统相册


    更多

    MediaStore.Images.Media.insertImage()保存图片成功后会返回新建图片的路径。


    日志信息


    可以根据这个返回值来弹出对话框提示保存成功,需要的话自己写下就好了,本例不再介绍。


    相关信息

    官方文档:
    https://developer.android.com/reference/android/provider/MediaStore.Images.Media.html

    相关文章

      网友评论

          本文标题:Android Studio kotlin 保存图片到系统相册

          本文链接:https://www.haomeiwen.com/subject/onlmjctx.html