安卓记事本开发报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 =

相关文档
最新文档