美文网首页
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