最近做了一款软件,功能不大, 展示ppt和画图, 但是融合了很多知识 ,还包含一些逻辑, 成功运行, 很适合新手, 但说到底小项目包含不了android整套知识, 所以还需要大家自己去慢慢扩展…
欢迎大家下载源码奥,支持就是动力.
1.功能介绍
- 展示ppt (pptx不支持),
- 画板,
- Room数据库操作(包含livedata数据更新框架),
- recycleview, 本地文件快速查询(自行更改搜索条件)
- viewmodel 保存数据…
(release文件中是打包好的apk, 下载就可以安装. 我遇到安装问题是: 在微信上下载之后就不知道下载到哪了, 需要大家在手机的文件管理里面直接搜索 apk.1 最后的 .1 是在微信下载之后微信自动给添加的, 搜索到这个之后重命名将 .1 去掉就可以在手机的应用–> 安装包里看到了)
2.详细介绍
2.1配置:
1.导入jar包 在libs文件里
2.清单文件需要配置存储权限 (只是配置权限, java代码里弹出dialog提醒用户是否允许存储权限)
3.build.gradle(app) 导入包
4.不经常使用的build.gradle中添加maven
***!!! 5. 这点很重要: 在gradle.properties中添加如图代码
- 可能我还漏了那点, 如果运行报错, 请仔细对比清单文件 和 两个 build.gradle文件
2.2代码详解
- Adapter这个是recycleview 的适配器
- 在Pptsearch里筛选出要添加的ppt文件–>list 集合中—>然后适配器会获取每个String(ppt名称) 进行展示
- Pptsearch中的recycleview绑定此适配器 , 为了美观,我使用的是网格样式的recycleview(定义网格样式在Pptsearch里)
- ImageView里是控件的自定义, 有ppt控件和Imageview控件自定义(但是使用的是itsrts-pptviewer.jar里的ppt控件)
- 可以看代码中的注释
- SQLite 这里面是数据库实体类, dao操作, 数据库创建(单例模式)
- 实体类中注意返回值和参数的设置, 还有最上边对表的命名…
- dao中有一些操作没有用到, 我也没删, 自己看看增删改查的格式吧…
- 数据库创建使用的是单例模式,防止多次反复创建数据库…
- myViewmodel 这个是一个框架, 用来保存数据的 —> 每次登录软件之后都会加载数据库,而不是创建 ; 它本身的用处是: 每次打开软件即程序被销毁后都能展示之前添加的数据 (代码不多, 可以自行研究)
- 这里面还进行了异步数据库操作, 和如何在数据库中删除数据之后id 设置的逻辑
- Pptsearch 这个是主界面需要定义的一些设置, 添加,删除,展示ppt文件…
- viewmodel和livedata 配合使用了 viewmodel–>保存数据 livedata---->数据发生改变后自动更新
- allppt 是搜索出来的所有ppt集合
chosenPath 临时存储选来的ppt路径
**chosenPathName ** 临时存储选来的ppt路径的名称
linshi 当多选框弹出来后, 需要对ppt进行选择嘛, linshi就是临时的意思 嘻嘻~英语水平低拼音代替 - 异步搜索ppt 这里直接在手机的文件数据库搜索会更快些… 这些复杂的操作得在异步线程进行奥~
- 因为时间问题, 其实搜索时应该有用户等待效果的动画, 我懒没弄
- 这里的操作有: 先进行文件搜索添加进allppt集合中, 然后弹出对话框
- 多选框 多选框使用的是系统自带的
- 当点击确定之后会将linshi(临时) 集合中的地址插入到数据库 注意临时中的String是绝对路径, 一会我们还需要展示ppt的名字, 所以, 我们需要对绝对路径进行处理, 获取文件名称 (这些操作与ui无关,需要开启异步线程)
- recycleview 使用的是网格样式, 绑定了mainAdapter 当点击item的时候, 会将item的绝对路径通过intent传递到teachppt的activity中
- TeachPPT 没多少内容, 一看就能明白
- intent 接收pptsearch中传过来的绝对路径
- ToastUtil toast工具类多次点击toast后, 只显示一次
代码需要付费下载(几包辣条)自己学习, 大家不要乱传播, 会影响感情…
项目地址:
https://download.csdn.net/download/ou_wocao/21839109?spm=1001.2014.3001.5501