前言
在上一节我们讲过了文件的文字读写,kotlin
实现起来非常简洁。那么这篇文章然我们来学习下kotlin
保存和读取图片的知识。
今天涉及知识:
- 读写权限
- BitmapFileHelper 图片文件存储与读取类简介
- BitmapFileHelper 在 activity 中使用
- 效果图和项目结构图
- BitmapFileHelper源码
- 需要注意的点
先来波效果图
效果图.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 中使用
下面贴出BitmapFileHelper
在TempActivity
中使用代码:
/**
* 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
源码如下:
网友评论