您好,欢迎访问三七文档
基于Android平台记事本的设计与实现1.设计目的记事本的基本功能就是记事,手机用户首先用到的就是文本记事,输入事务信息以文本的形式展现出来,存储起来。随着用户需求的增加,可能希望用图形来代替文本来记事,用户之间打开记事本,看到图片就能联系自己所记载的事务信息。这样免去了输入文字的麻烦,反而会更简单。又或者是文本与图片的交叉运用,可以让用户自己选择自己喜欢的记事方式,更加自由与便捷。所以此功能的意义是让简单的记事信息能以文本、图文和视频表达,更加丰富多彩。2.设计内容本设计的基本内容是在Android平台下,设计与实现记事本软件。具体要实现的功能是:(1)设计实现添加“文字”,“图文”,“视频”这三个主要的功能模块。(2)进入添加后,有“保存”,“取消”两种选择。(3)主页面显示记事列表,点击可查看及时内容,并有“删除”,“返回”两种选择。(4)进行测试并分析结果。3.开发环境的安装与配置3.1Android开发平台搭建本设计主要是以Eclipse为基础,安装SDK和ADT插件后,用来开发安卓项目。开发平台搭建步骤介绍如下。(1)下载JDK并安装,安装后配置环境变量。(2)下载Eclipse解压至指定文件夹。(3)下载SDK后解压至指定文件夹,打开SDK目录,点击SDKManager安装开发安卓项目需要的包。(4)启动Eclipse,进入Help—InstallNewSoftware—Add,添加ADT插件。(5)进入Window—Android—Browse,选择SDK安装目录。3.2硬件环境Android设备,如Android手机或平板电脑,主频在1Ghz及以上,内存为512MB以上,系统版本为Android2.1及以上。本设计使用Android4.4.4的手机。3.3软件环境操作系统:windows10IDE:EclipseAndroidSDK集成环境4.设计主体架构4.1src文件夹src文件夹下com.liwenhuan.notepad包下为系统主要Activity类:NotesDB.java是进行数据储存的,通过SQLite保存数据。并且用onCreate函数创建数据库。通过设置两个按钮的监听来实现对输入文本的存储或退出。MainActivity.java是主Activity,通过设置三个按钮的监听来实现添加文本、图文、视频的记事方式。AddContent.java通过initView方法来判断记事的方式,实现对文本、图片、视频的添加,获取保存文件的时间。MyAdapter.java是显示模块,通过系统提供的Bitmap在记事列表显示图片和视频的缩略图。SelectAct.java是记事详情的显示模块,通过监听的方法来实现记事的删除功能。4.2gen文件夹gen文件夹是项目自动生成的文件夹R.java是工程下各个资源的标识符负责所有资源的索引。4.3bin文件夹bin文件夹是编译后的字节码存放的目录,编译的过程首先是编译成为androidjava虚拟机文件classes.dex,再打包成APK格式的包。4.4res文件夹Res是资源目录,它包含项目中的资源文件并将其编译进应用程序中,向此目录添加资源时,会被R.java自动记录。res目录存放所有程序中用到的资源文件。“资源文件”指的资料文件、图片等。子目录有:drawable、layout、values。本设计主要用了layout目录下的布局文件。layout是屏幕布局目录,activity_main.xml是主界面的布局文件、addcontent.xml是增加数据页面的布局文件、cell.xml是几个功能按钮的布局文件、select.xml是显示记事详情以及对记事进行操作的布局文件。5.程序设计5.1数据存储之SQLite这个方法在数据保存中非常常用,只是它只会被一个程序读取数据,不能在不同程序间共享数据。//创建数据库publicvoidonCreate(SQLiteDatabasedb){db.execSQL(CREATETABLE+TABLE_NAME+(+ID+INTEGERPRIMARYKEYAUTOINCREMENT,+CONTENT+TEXTNOTNULL,+PATH+TEXTNOTNULL,+VIDEO+TEXTNOTNULL,+TIME+TEXTNOTNULL));}5.2添加文字内容当以文本方式记事时,需要对输入的文字内容进行保存。publicvoidinitView(){if(val.equals(1)){//文字c_img.setVisibility(View.GONE);//隐藏v_video.setVisibility(View.GONE);//隐藏}}publicvoidonClick(Viewv){switch(v.getId()){caseR.id.save:addDB();//添加数据finish();//关闭当前Activitybreak;caseR.id.delete:finish();break;}}5.3适配器配置publicclassMyAdapterextendsBaseAdapter{privateContextcontext;privateCursorcursor;privateLinearLayoutlayout;//视图对象publicMyAdapter(Contextcontext,Cursorcursor){this.context=context;this.cursor=cursor;}@OverridepublicintgetCount(){returncursor.getCount();//返回长度}@OverridepublicObjectgetItem(intposition){returncursor.getPosition();}@OverridepubliclonggetItemId(intposition){returnposition;}publicViewgetView(intposition,ViewconvertView,ViewGroupparent){LayoutInflaterinflater=LayoutInflater.from(context);//加载视图的权限layout=(LinearLayout)inflater.inflate(R.layout.cell,null);//布局文件TextViewcontenttv=(TextView)layout.findViewById(R.id.list_content);//获取上面布局文件中的每一个内容TextViewtimetv=(TextView)layout.findViewById(R.id.list_time);//查找时间ImageViewimgiv=(ImageView)layout.findViewById(R.id.list_img);//查找图片ImageViewvideoiv=(ImageView)layout.findViewById(R.id.list_video);//查找视频cursor.moveToPosition(position);//查询Stringcontent=cursor.getString(cursor.getColumnIndex(content));//获取具体内容Stringtime=cursor.getString(cursor.getColumnIndex(time));//获取时间Stringurl=cursor.getString(cursor.getColumnIndex(path));//获取图片的缩略图Stringurlvideo=cursor.getString(cursor.getColumnIndex(video));//获取视频contenttv.setText(content);//将内容传递进来timetv.setText(time);//将时间传递进来videoiv.setImageBitmap(getVideoThumbnail(urlvideo,200,200,MediaStore.Images.Thumbnails.MICRO_KIND));//在列表显示视频缩略图imgiv.setImageBitmap(getImageThumbnail(url,200,200));//在列表显示图片缩略图returnlayout;}5.4添加图片和视频在本设计中,不仅提供了以文本方式进行记事,还提供了以图片和视频方式进行记事。publicvoidinitView(){if(val.equals(2)){//图片c_img.setVisibility(View.VISIBLE);//显示v_video.setVisibility(View.GONE);//隐藏Intentiimg=newIntent(MediaStore.ACTION_IMAGE_CAPTURE);//跳转到系统相机phoneFile=newFile(Environment.getExternalStorageDirectory().getAbsoluteFile()+/+getTime()+.jpg);//获取SD卡绝对路径iimg.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(phoneFile));//存储获取的图片信息startActivityForResult(iimg,1);//启动跳转}if(val.equals(3)){c_img.setVisibility(View.GONE);//隐藏v_video.setVisibility(View.VISIBLE);//显示Intentvideo=newIntent(MediaStore.ACTION_VIDEO_CAPTURE);//跳转到手机系统信息videoFile=newFile(Environment.getExternalStorageDirectory().getAbsoluteFile()+/+getTime()+.mp4);//获取SD卡绝对路径video.putExtra(MediaStore.EXTRA_OUTPUT,Uri.fromFile(videoFile));//存储获取的video信息startActivityForResult(video,2);//启动跳转}}//显示图片或视频protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata){//TODOAuto-generatedmethodstubsuper.onActivityResult(requestCode,resultCode,data);if(requestCode==1){//图片Bitmapbitmap=BitmapFactory.decodeFile(phoneFile.getAbsolutePath());//获取路径c_img.setImageBitmap(bitmap);//展示内容}if(requestCode==2){//视频v_video.setVideoURI(Uri.fromFile(videoFile));//加载视频v_video.start();//播放视频}}5.5获取图片和视频的缩略图当我们用图片或制品进行记事时,在列表中需要显示其缩略图,可以用系统提供的Bitmap进行处理。//获取图片的缩略图publicBitmapgetImageThumbnail(Stringuri,intwidth,intheight){Bitmapbitmap=null;BitmapFactory.Optionsoptions=newBitmapFactory.Options();options.inJustDecodeBounds=true;bitmap=Bi
本文标题:安卓记事本开发报告
链接地址:https://www.777doc.com/doc-2077476 .html