安卓记事本开发报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于Android平台记事本的设计与实现
1.设计目的
记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。这样免去了输入文字的麻烦,反而会更简单。又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。所以此功能的意义是让简单的记事信息能以文本、图文和视频表达,更加丰富多彩。
2.设计内容
本设计的基本内容是在Android平台下,设计与实现记事本软件。具体要实现的功能是:
(1)设计实现添加“文字”,“图文”,“视频”这三个主要的功能模块。
(2)进入添加后,有“保存”,“取消”两种选择。
(3)主页面显示记事列表,点击可查看及时内容,并有“删除”,“返回”两种选择。
(4)进行测试并分析结果。
3.开发环境的安装与配置
3.1 Android开发平台搭建
本设计主要是以Eclipse为基础,安装SDK和ADT插件后,用来开发安卓项目。开发平台搭建步骤介绍如下。
(1)下载JDK并安装,安装后配置环境变量。
(2)下载Eclipse解压至指定文件夹。
(3)下载SDK后解压至指定文件夹,打开SDK目录,点击SDK Manager安装开发安卓项目需要的包。
(4)启动Eclipse,进入Help—>Install New Software—>Add,添加ADT插件。
(5)进入Window—>Android—>Browse,选择SDK安装目录。
3.2硬件环境
Android设备,如Android手机或平板电脑,主频在1Ghz及以上,内存为512MB以上,系统版本为Android2.1及以上。本设计使用Android4.4.4的手机。
3.3 软件环境
操作系统:windows10
IDE:Eclipse
Android SDK 集成环境
4.设计主体架构
4.1 src文件夹
src文件夹下com.liwenhuan.notepad包下为系统主要Activity类:
NotesDB.java是进行数据储存的,通过SQLite保存数据。并且用onCreate函数创建数据库。通过设置两个按钮的监听来实现对输入文本的存储或退出。
MainActivity.java是主Activity,通过设置三个按钮的监听来实现添加文本、图文、视频的记事方式。
AddContent.java通过initView方法来判断记事的方式,实现对文本、图片、视频的添加,获取保存文件的时间。
MyAdapter.java是显示模块,通过系统提供的Bitmap在记事列表显示图片和视频的缩略图。
SelectAct.java是记事详情的显示模块,通过监听的方法来实现记事的删除功能。
4.2 gen文件夹
gen文件夹是项目自动生成的文件夹R.java是工程下各个资源的标识符负责所有资源的索引。
4.3 bin文件夹
bin文件夹是编译后的字节码存放的目录,编译的过程首先是编译成为android java虚拟机文件classes.dex,再打包成APK格式的包。
4.4 res文件夹
Res是资源目录,它包含项目中的资源文件并将其编译进应用程序中,向此目录添加资源时,会被R.java自动记录。res目录存放所有程序中用到的资源文件。“资源文件”指的资料文件、图片等。子目录有:drawable、layout、values。本设计主要用了layout目录下的布局文件。
layout是屏幕布局目录, activity_main.xml是主界面的布局文件、addcontent.xml是增加数据页面的布局文件、cell.xml是几个功能按钮的布局文件、select.xml是显示记事详情以及对记事进行操作的布局文件。
5.程序设计
5.1数据存储之SQLite
这个方法在数据保存中非常常用,只是它只会被一个程序读取数据,不能
在不同程序间共享数据。
//创建数据库
public void onCreate(SQLiteDatabase db) {
db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + ID
+ " INTEGER PRIMARY KEY AUTOINCREMENT," + CONTENT
+ " TEXT NOT NULL," + PATH + " TEXT NOT NULL,"
+ VIDEO+ " TEXT NOT NULL," + TIME + " TEXT NOT
NULL)");
}
5.2 添加文字内容
当以文本方式记事时,需要对输入的文字内容进行保存。
public void initView() {
if (val.equals("1")) { // 文字
c_img.setVisibility(View.GONE);//隐藏
v_video.setVisibility(View.GONE);//隐藏
}
}
public void onClick(View v) {
switch (v.getId()) {
case R.id.save:
addDB();//添加数据
finish();//关闭当前Activity
break;
case R.id.delete:
finish();
break;
}
}
5.3适配器配置
public class MyAdapter extends BaseAdapter {
private Context context;
private Cursor cursor;
private LinearLayout layout;//视图对象
public MyAdapter(Context context, Cursor cursor) {
this.context = context;
this.cursor = cursor;
}
@Override
public int getCount() {
return cursor.getCount();//返回长度
}
@Override
public Object getItem(int position) {
return cursor.getPosition();
}
@Override
public long getItemId(int position) {
return position;
}
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = LayoutInflater.from(context);//加载视图的权限
layout = (LinearLayout) inflater.inflate(yout.cell,
null);//布局文件
TextView contenttv = (TextView)
layout.findViewById(R.id.list_content);//获取上面布局文件中的每一个内容TextView timetv = (TextView)
layout.findViewById(R.id.list_time);//查找时间
ImageView imgiv = (ImageView)
layout.findViewById(R.id.list_img);//查找图片
ImageView videoiv = (ImageView)
layout.findViewById(R.id.list_video);//查找视频
cursor.moveToPosition(position);//查询
String content =
cursor.getString(cursor.getColumnIndex("content"));//获取具体内容
String time =
cursor.getString(cursor.getColumnIndex("time"));//获取时间
String url =
cursor.getString(cursor.getColumnIndex("path"));//获取图片的缩略图
String urlvideo =