赞
踩
作业:记事本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 运行结果展示
打开应用后首先进入首页
点击右下角图标后可以进行新增记事,进入编辑页面。
点击下面的图标可以在记事本内添加相关的内容。
首先在记事本内添加文字,直接将光标移动至相关位置输入。
点击右下角的手写可以跳转到手写页面,可以选择橡皮擦、画笔颜色和画笔宽度。
选择橡皮擦后,进行涂抹。点击确定保存到手机存储,并且在编辑页面上展现出来。
点击照相后调用系统相机
点击完成后返回编辑页面,并且在编辑页面可以看到图片。点击录音进入录音页面。
点击下面的录音按钮可以进行录音,进度条和波形图案动态变化。录音结束后点击暂停按钮,可以点击麦克风进行试听。
点击确定后保存到本地,并且在原先的页面中展示录音图标。点击右上角的对号后返回主页面,并且将内容更新到页面上。
长按该页面出现选择框,可以选择修改查看或删除。选择查看后进入编辑/查看页面。
点击录音小图标可以播放对应录音。点击图片可以查看大图。
修改题目返回主页面。题目和时间都变了。
选择删除后,该页面自动刷新。
编辑页面选择录像按钮后,进入录像页面。点击录像后调用系统的录像机。
录像后可以查看。录像保存在了本地。
拍照后图片也保存在了图库。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。