作业:记事本APP。要求:
(1) 给出实现源程序,对源程序加以说明;
(2) 给出屏幕运行结果的截图,运行结果含有个人特征;
(3) 用word文档提交,文件名:班号-姓名-学号后3位-作业。
1.页面设计美观,可以正确显示数据(20分)。
2.实现数据保存、查询、修改和读取功能(20分)。
3.调用系统相机录制视频,应用内播放(20分)。
4.拍摄照片,保存在图库中,应用内显示 (20分)。
5.应用绘图板手写记录,将图片保存在图库中(20分)。

下载地址 https://gitee.com/Cutele/notepad

运行结果







说明文档 懒得贴图片了

具体见word吧
目录
一、基本UI页面的编写 2
1.1 主页面 2
1.2 记事页面 3
1.3 录音页面 4
1.4 手写板页面 5
1.5 录音详情页面 6
1.6 图片详情页面 6
1.7 录像详情页面 7
二、数据的保存、查询、修改和读取功能 7
2.1 数据库的建立 7
2.2 数据库字段的设置 7
2.3 数据接口的设立 8
2.4 记事的增加 8
2.5 记事的查找 9
2.6 记事的删除 9
2.7 记事的修改 10
三、多媒体功能的应用 10
3.1 文字 11
3.2 录音 11
3.3 拍照 13
3.4 视频 14
3.5 手写板 14
四、实验总结 16
4.1 运行结果展示 16

一、基本UI页面的编写
1.1主页面
主页面主要是展现所有笔记的缩略图以及跳转到新增记事页面。
对于展现笔记的缩略图,用listview来动态获取数据库中存的信息。
在右下角设置图标,点击后即可跳转到记事页面。
对于listview中的每一项笔记,都展现题目和创建日期,方便使用者对所有笔记做出区分。
xml的基本布局代码:

MainActivity中的初始化

给右下角图标添加点击事件,点击后跳转到新增记事页面。

1.2记事页面
记事页面由上、中、下三个部分构成。
上部分为该页面的导航栏,左边为返回上一级的图标,右边为保存本记事的图标,中间可以输入该记事的标题。

中间部分为记事的编辑框部分,可以在这里输入五种内容,分别为文字、录音、视频、照相和手写。

下部分为多媒体的选项,点击图标可以插入对应的内容。

在中间部分的编辑框中,新写了一个类继承EditText,对每一行的文字都添加了下划线,方便区分,使得页面更加美观。

1.3录音页面
录音页面是在记事页面后点击下方的录音图标跳转后的页面。在该页面可以进行录音,试听录音,保存录音。该页面也是上中下三部分。上部分主要是导航栏,有返回和确定两个按钮,点击返回可以返回上一级页面,点击确定可以保存数据。

中间部分为录音图标和计时器,点击录音图标可以试听录音和停止试听录音。下面的计时器是动态显示的,随着录音的试听动态变化。

下部分为录音、停止录音的按钮。初次点击按钮后,开始录音;正在录音时,点击该按钮录音停止并且自动保存到本地。如果再次点击该按钮,将重新进行录音并且替换上次保存的文件,这样每次不会保存重复的文件。

1.4手写板页面
手写板的页面有两部分构成,上部分为导航栏,有返回和确定两个按钮。点击返回可以返回到编辑记事页面,点击确定可以将图片保存到本地并且展现到记事页面上。

下部分为手写的主要区域,可以设置画笔的颜色、粗细和橡皮擦。橡皮擦实际上就是白色颜色的画笔。还设置了imgview用来展现用户的轨迹和图像。

1.5录音详情页面
录音详情页面是在编辑记事里插入录音后,会将录音图标展现到页面上,再次点击该图标就可以进入录音详情,播放录音。
导航栏只有返回按钮,设立在左上角,点击该按钮可以返回编辑记事页面。中间为录音图标和动态更新的计时器。

1.6图片详情页面
图片详情页面是在编辑记事页面插入图片后,再点击该图片就可以查看图片的放大图。导航栏为返回上一级,下面添加了imgview用来展现图片。

1.7录像详情页面
在编辑记事页面点击录像后,进入此页面。点击录像可以调用系统相机进行拍照。下面的VideoView,可以展现刚刚录制的视频。

二、数据的保存、查询、修改和读取功能
2.1 数据库的建立
采用room框架建立数据库,并且使用了单例模式进行设计,这样确保只有一个对象被创建。

2.2 数据库字段的设置
考虑一个记事本主要包含的内容,无异于标题、内容和创建时间,所以选择这三个作为数据库中表Data的字段。为了区分不同的笔记,还应当增加id自增使得其是Data的主键。注意多媒体的东西,如录音、图片等等都是将路径保存到数据库里,等编辑记事的时候再将其从路径中取出来并且展现在页面上。

2.3 数据接口的设立
分析记事本的需求得到应当有以下几种操作:增加记事,删除全部记事,查询所有记事,按id删除记事,按id查找记事,更新记事。

2.4 记事的增加
在编辑记事页面,点击右上角的图标可以将记事保存到数据库。添加时,获取编辑页面的标题、内容和系统的时间。对于图片、录音等多媒体而言,保存的是他们在手机上存储的路径。

2.5 记事的查找
在主页面上,应当显示数据库中所有笔记的列表视图,这就用到了数据库的查询。

2.6 记事的删除
给列表中的每一项都添加长按事件,长按后弹出选择框,可以选择删除或修改。选择删除的话,根据id查找到该项,删除。

2.7 记事的修改
点击修改后也进入编辑记事页面,并且应当将原先的记事内容展现在页面上。那么新增记事和修改记事都是进入编辑记事页面,可以在intent对象里多增加一个参数来表示是编辑还是新增,并且传一下编辑对象的id值,这样进入编辑页面的时候就可以将记事内容展现在页面上了。

三、多媒体功能的应用

3.1 文字
正常的EditText就可以输入文字,设置监听事件就可以进行监听和保存。

3.2 录音
录音使用的是安卓自带的MediaRecorder和MediaPlayer。在点击录音的时候,调用new MediaRecorder()并且进行初始化设置。

在点击试听的时候,调用MediaPlayer进行播放。
这样就完成了基本录音功能的实现。接下来实现各个图标的点击事件和计时器的自动播放。
在试听录音、播放录音或进行录音时,下面的计时器是在变化的。对此计时器,开辟一个单独的线程来处理。每次动态的设置时间的变化,并且修改textview的值。

对于麦克风的图标来说,如果当前未录音,点击应当提示用户先录音。所以可以设一个变量来标记用户是否已经开始录音。

如果已经有录音文件的话,应当区分现在点击是播放录音和暂停播放录音。设置变量isPlaying用来区分。

点击返回后,删除已经保存的录音文件,返回编辑页面。点击确定后,将路径返回给编辑页面。

3.3 拍照
编辑页面点击拍照后,调用系统自带的相机进行拍照,跳转到系统相机,拍照后保存在本地图库,并且将路径返回。

重写onActivityResult方法,记录不同的requstcode对应不同的操作。用Uri存取回的数据。

查看图片时,将图片的路径放入intent中,跳转到查看图片页面后,利用bitmap加载路径中的图片,放到imgview中。

3.4 视频
点击录像跳转到对应的录像类

在录像页面中点击录像可以调用系统相机进行录像

系统相机录像完成后,将对应的文件实例化到播放器上。

3.5 手写板
编辑记事页面点击手写后,进入手写板页面。

给手写板的imgview设置触摸事件,记录绘制的路径。每次按下时记录点击位置,移动时获取当前位置并且绘制直线,结束时将重点设置为下一次的起点。

点击设置颜色按钮可以设置画笔的颜色,添加dialog对话框来提供可选择的颜色。用户选择之后将修改paint的color属性。

点击设置宽度按钮可以设置画笔的粗细,添加dialog对话框来提供可选择的宽度。用户选择之后修改paint的width属性。

由于底色是白色,所以橡皮擦实际上就是白色的画笔。

保存图片的时候,可以先将图片保存到Bundle里,再将Bundle放到intent对象里。返回上一级页面。

四、实验总结
4.1 运行结果展示
打开应用后首先进入首页

点击右下角图标后可以进行新增记事,进入编辑页面。

点击下面的图标可以在记事本内添加相关的内容。
首先在记事本内添加文字,直接将光标移动至相关位置输入。

点击右下角的手写可以跳转到手写页面,可以选择橡皮擦、画笔颜色和画笔宽度。

选择橡皮擦后,进行涂抹。点击确定保存到手机存储,并且在编辑页面上展现出来。

点击照相后调用系统相机

点击完成后返回编辑页面,并且在编辑页面可以看到图片。点击录音进入录音页面。

点击下面的录音按钮可以进行录音,进度条和波形图案动态变化。录音结束后点击暂停按钮,可以点击麦克风进行试听。

点击确定后保存到本地,并且在原先的页面中展示录音图标。点击右上角的对号后返回主页面,并且将内容更新到页面上。

长按该页面出现选择框,可以选择修改查看或删除。选择查看后进入编辑/查看页面。

点击录音小图标可以播放对应录音。点击图片可以查看大图。

修改题目返回主页面。题目和时间都变了。

选择删除后,该页面自动刷新。

编辑页面选择录像按钮后,进入录像页面。点击录像后调用系统的录像机。

录像后可以查看。录像保存在了本地。

拍照后图片也保存在了图库。

【安卓开发】开源Notepad记事本APP项目(完整代码+说明文档)相关推荐

  1. 安卓大作业(AndroidStudio开发)日记记事本app

    使用技术及软件: 1:Activity显示页面 2:Sqlite进行数据的存储 3:使用Androidstudio进行开发 课题基本介绍: 1:用户的注册和登录 2:日记本信息的添加和查看,以及删除和 ...

  2. 安卓源码,安卓开发,跑步打卡项目app源码

    安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文档 YID:6975644491117436

  3. 安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文档

    安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文档 ID:6975644491117436Robergean

  4. 安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文 档

    安卓源码,安卓开发,跑步打卡项目app源码,包括源码和简单文 档

  5. P74-前端基础项目开发-首页main部分开发广告栏-项目完整代码

    P74-前端基础项目开发-首页main部分开发广告栏-项目完整代码 1.概述 这篇文章是首页开发最后一个部分,也是这个项目的结束部分.通过这个项目练习让我们掌握了HTML+CSS的基础使用. 2.广告 ...

  6. 基于Vue开发的电商APP项目——蘑菇街app

    基于Vue开发的电商APP项目--蘑菇街 项目源码:https://github.com/Limna777/Shopmall.git 1.项目描述 2.使用的插件或第三方库 3.页面主要实现的功能 1 ...

  7. 全新 安卓项目源码 校园跑腿帮APP android stu dio项目可调试 附说明文档

    全新 安卓项目源码 校园跑腿帮APP android stu dio项目可调试 附说明文档,录屏 基于Bmob后端云,material design风格设计,支持登录注册,任务发布,修改,上拉加载,下 ...

  8. 软件工程专业期末项目开发全流程模拟日志《用例说明文档》

    引言 需求获取阶段的第二篇文档:用例说明文档,站在使用者的角度去思考软件应该如何实现,帮助开发者理清思路,明确要实现的功能模块.用例说明文档的作用就像是把一个模糊的用户需求概念更进一步的抽象,在面向对 ...

  9. java代码实现打气球游戏_关于javascript和css3开发打气球小游戏的完整代码

    这篇文章主要介绍了关于javascript和css3开发打气球小游戏的完整代码,有着一定的参考价值,现在分享给大家,有需要的朋友可以参考一下 这是一个简单但是印象深刻的小游戏,打气球小游戏的实现代码, ...

  10. 314_抽签器项目完整代码

    抽签器项目完整代码 public class MainActivity extends AppCompatActivity { private LotterView lotterView;     p ...

最新文章

  1. Webdriver定位不到元素的解决办法
  2. linux下查看cc攻击
  3. 南洋理工大学科学家研发组装机器人,可以帮助用户组装椅子
  4. python json解析列表显示_求教一下 python 读取 json 以后,输出的问题(unicode 和中文显示)...
  5. Windows 下端口被占用
  6. 总体参数的估计(概念)
  7. IE9上特定网站不断崩溃的故障
  8. Docker:Docker的简介、安装、使用方法之详细攻略
  9. Ubuntu 安装 Docker 容器
  10. idea启动java Maven项目,出现“ java: 程序包xxxx不存在“
  11. 法那科机器人初始化启动_发那科机器人的控制方式和控制柜的启动方式
  12. python小说阅读器_用python实现自己的小说阅读器
  13. java连接ftp服务器
  14. linux文件被锁定,Linux下锁定系统重要文件,防止篡改
  15. Windows系统通过cmd查找结束进程
  16. 数据分析的工作目标是什么
  17. 学号20189220 2018-2019-2 《密码与安全新技术专题》第四周作业
  18. JSP野生动物保护网
  19. 使用workflow客制出货通知单
  20. zemax模拟ld_使用ZEMAX 序列模式模拟激光二极管光源

热门文章

  1. 2022年驾驶员考试装载车司机考试模拟试题卷及答案
  2. python模块专题——1.faker
  3. 批处理学习(一)——MS-DOS命令
  4. 记模拟器出现横竖屏切换闪屏问题
  5. java实现生命游戏(2维元胞自动机)
  6. bootstrap编写响应式页面
  7. 人工智能 python 考证_写人作文
  8. 设计之美 --大道至简
  9. Mybatis学习之路(二):property元素应用
  10. 可以嵌入ppt的课堂点名器_异地授课+大屏直播,打造沉浸式线下多地互动智慧课堂...