美文网首页
Kotlin笔记(59) — 图片的保存与读取

Kotlin笔记(59) — 图片的保存与读取

作者: 奔跑的佩恩 | 来源:发表于2021-02-23 08:25 被阅读0次

    前言

    在上一节我们讲过了文件的文字读写,kotlin实现起来非常简洁。那么这篇文章然我们来学习下kotlin保存和读取图片的知识。

    今天涉及知识:

    1. 读写权限
    2. BitmapFileHelper 图片文件存储与读取类简介
    3. BitmapFileHelper 在 activity 中使用
    4. 效果图和项目结构图
    5. BitmapFileHelper源码
    6. 需要注意的点

    先来波效果图


    效果图.gif

    一. 读写权限

    先是要在你项目的androidmainfast.xml中添加读写权限,如下:

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

    然后需要添加手动权限库,这里我使用的是PermissionsDispatcher,手动库的添加大家可以参考以下文章:
    PermissionsDispatcher动态权限申请kotlin版
    接着需要添加FileProvider相关处理,大家可参考以下文章
    SpUtil多样加密存储,兼容android9.0

    二. BitmapFileHelper 图片文件存储与读取类简介

    图片文件读写,我写到了帮助类BitmapFileHelper中,此类中主要有以下几个方法:

        /**保存图片**/
        fun saveBitmap(imv:ImageView,path:String):Boolean
    
        /**字节读取图片文件**/
        fun readBitmapByByte(imv:ImageView,path:String)
    
        /**流读取图片文件**/
        fun readBitmapFileByStream(imv:ImageView,path:String)
    
        /**路径读取图片文件**/
        fun readBitmapFileByPath(imv:ImageView,path:String)
    

    需要注意的是,读取图片文件可以有三种方式:字节读取流读取路径读取。大家可以根据自己的喜好选择读取方式。

    三. BitmapFileHelper 在 activity 中使用

    下面贴出BitmapFileHelperTempActivity中使用代码:

    /**
     * Title:
     * description:
     * autor:pei
     * created on 2021/1/21
     */
    class TempActivity :AppCompatActivity(){
    
        private var path:String = "/data/data/com.kotlintest/temp/text.png"
    
        private var mBitmapFileHelper = BitmapFileHelper()
    
        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)
            setContentView(R.layout.activity_temp)
    
            mImv.imageResource = R.mipmap.eye
    
            //存储图片
            mBtn.setOnClickListener{
                //var bitmap: Bitmap = BitmapFactory.decodeResource(resources, R.mipmap.eye)
    
                var success= mBitmapFileHelper.saveBitmap(mImv,path)
                if(success){
                    toast("保存图片成功")
                }else{
                    toast("保存图片失败")
                }
            }
    
            //读取图片文件
            mBtn2.setOnClickListener{
    
    //            //字节方式读取图片文件
    //            mBitmapFileHelper.readBitmapByByte(mImv2,path)
    
    //            //流读取图片文件
    //            mBitmapFileHelper.readBitmapFileByStream(mImv2,path)
    //            LogUtil.i("===流读取图片文件===")
    
                //路径读取图片文件
                mBitmapFileHelper.readBitmapFileByPath(mImv2,path)
                LogUtil.i("===路径读取图片文件===")
            }
    
        }
    
    }
    

    四. 效果图和项目结构图

    效果图.gif 项目结构图.png

    五. BitmapFileHelper源码

    BitmapFileHelper源码如下:

    相关文章

      网友评论

          本文标题:Kotlin笔记(59) — 图片的保存与读取

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