andorid其它实验及项目7、阅读器参考_第1页
andorid其它实验及项目7、阅读器参考_第2页
andorid其它实验及项目7、阅读器参考_第3页
andorid其它实验及项目7、阅读器参考_第4页
andorid其它实验及项目7、阅读器参考_第5页
已阅读5页,还剩42页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子阅读器实【实验内容电子阅【电子阅读器实【实验内容电子阅【实验目的熟悉电子阅读器编程【实】开源平环境【关键代码1源文件:ReaderActivity.java /标识所有 SurfaceView 的常classpublic sic finalpublic sic finalpublic sic finalpublic/表示各个界面的安全类型枚举enum WhichView _VIEW,MAIN_VIEW,SEARCHBOOK_LIST,BACKGROUND_LIST /背景/背景图/文字颜色描/字体大小描 / String leavePath;/子文件路径 Button root_b;/返回

2、的按Button back_b;/返回到上/ String leavePath;/子文件路径 Button root_b;/返回的按Button back_b;/返回到上LIST_BOOKMARK=4;/书签按框框EXIT_READER=7;/框的框DELETE_ALL_BOOKMARK=9;/清空当前书的所有书=10;/设置字体框框SET_FONT_COLOR=11;/设置字体颜BACKGROUND_PIC=12;/背BACKGROUND_MUSIC=13;/背景音框DownLoad dl; ReaderView readerView;/ReaderView TurnPageThreadMe

3、diaPlayer 器sp;/判断是第几次打开同一本列表”中的书ArrayList();/存放所有将要放入“书签界面2ll;/存放从数据库中取出的所有“书签temppage;/存放从数据库中取出的所有当前书书签的页ll;/删ll;/存放从数据库中取出的所有“书签temppage;/存放从数据库中取出的所有当前书书签的页ll;/删除的书签haveBookMark=false;/判断数据库中是否存在书 e)/全屏显示 Activity 的设this requestWindowFeature(Window.FEATURE_NO_TITLE);/去掉标题 WindowManager.LayoutPar

4、ams.FLAG_FULLSCREEN);/去掉标 /获取分辨率DisplayMetricsdm=new);/强制横/给常量类中的屏幕高和宽赋值3readerView=new ReaderView(this);/ReaderView readerView=new ReaderView(this);/ReaderView isWhichTime();/判断是第几次打,根据第几次打,打开的书页位置不lvutills=new ListViewUtills(this); E_VIEW);/跳转到主界 casecase_VIEW);/跳转到主界return(/enu.add(0,0,0, 4search

5、book=new 接/实现菜单项点ItemreturnItemClickListener(searchbook);/给“找书”添器/ItembookMark.setIcon(R.drawable m_bookmark); searchbook=new 接/实现菜单项点ItemreturnItemClickListener(searchbook);/给“找书”添器/ItembookMark.setIcon(R.drawable m_bookmark); return/Item/实现菜单项点接ItemreturnItemClickListener(turn);/给“翻页”添器/ ItemClick

6、Listener set=new /实现菜单项点接5Itemreturnreturntrue;ItemClickListener(set);/给“设置”添器Itemreturnreturntrue;ItemClickListener(set);/给“设置”添器case LIST_SEARCH:/找Builder b=new AlertDialog.Builder(this); newpublicvoiderface which)casecasecase LIST_BOOKMARK:/书签二级菜单 b=newAlertDialog.Builder(this); 6new erface.OnCli

7、ckListener() publicnew erface.OnClickListener() publicvoiderfacewhich)case 0:/添加书签 /判断数据库中是否存在当前这本书的 /如果不存在书签,出Toast (case 2:/清空书签 7NAME_INPUT_DIALOG_ID:/弹出添加书 NAME_INPUT_DIALOG_ID:/弹出添加书 b=newAlertDialog.Builder(this); b.setItems(null, null);框 b.setItems(null, null); 框b=newAlertDialog.Builder(this)

8、; b.setItems(nullnull);case DELETE_ALL_BOOKMARK:/清空当前这本书的全部 b=newAlertDialog.Builder(this); case SET_FONT_SIZE:/字体大小 b.setItems(null, null); b=newAlertDialog.Builder(this); b.setItems(null, null); case SET_FONT_COLOR:/设置字体颜色 dialog=new MyDialogFontColor(this);/用 xml 文件自己布BACKGROUND_PIC:/框dialog=new

9、MyDialogBackgroundPic(this);/用自己布局问文8case LIST_TURNPAGE:/自动翻书 newcase LIST_TURNPAGE:/自动翻书 newpublicvoiderfacewhich)case0:/30if(Constant.FILE_PATH=null)/如果没有选else/如果已经选if(turnpage.isPageflag()=false)/如果线程没有开始线turnpage.setThirtySecond(true);/30 秒设为true 其他跳转到主界case1:/40if(Constant.FILE_PATH=null)/如果没有选

10、9else/如果已经选if(turnpage.isPageflag()=false)/如果线程没有开始,else/如果已经选if(turnpage.isPageflag()=false)/如果线程没有开始,则开始线_VIEW);/ 转到主界case2:/50if(Constant.FILE_PATH=null)/如果没有选else/如果已经选if(turnpage.isPageflag()=false)/如果线程没有开始线turnpage.setThirtySecond(false);/将50 秒设为true 其他为跳转到主界case 3:/停止自动翻页 跳转到界LIST_SET:/设b=ne

11、wcase 3:/停止自动翻页 跳转到界LIST_SET:/设b=newAlertDialog.Builder(this); newpublicvoiderface which)case 0:/背景音乐 case1:/case 2:/字体颜色 case 3:/字体大小 框1return/每次弹框时被回调以动态更框内容的方publicvoidreturn/每次弹框时被回调以动态更框内容的方publicvoidid,finalDialog/输框Button/Button器new if(Constant.FILE_PATH=null)/如果没有选择书,不可以加书Toast.makeText(Read

12、erActivity.this, 请先选择您要阅读/框里的内Toast 显String name=et.getText().toString();if(name.equals()/如果书签为Toast.makeText(ReaderActivity.this, else/书签不/当前书签的“名字”和当前书签的“页数”存 框器new 框器new /关框case SELECT_BOOKMARK:/选择书签的 框 catch(Exception 框对应的总垂直方向 /标题行的水平 框对应的总垂直方向 /标题行的水平 /标题行的文设置字体颜/将标题行添加到总 LinearLayout /条目创建 /初

13、始化ListViewlv=new/为 ListView 准备内容适 return tempname.length;/总共几个选publicObjectarg0)returnnull;publiclongarg0)return0; publiclongarg0)return0; /为书签image.setLayoutParams(newGallery.LayoutParams(30,30); /动态生成每条书签对应的 +String.valueOf(temppagearg0+1)+页);/设置内tv.setTextSize(20);/设置字体大第设置字体颜returnlv.setAdapter(

14、ba);/ListView 设置内容器long arg3) /重写选项被单击事件的处理page=temppagearg2;/得到这readerView.currRR=readerView.currBook.get(page);/hashMap 中找到 当读到leftstart 的当前读到 当读到leftstart 的当前读到 dialog.cancel();/关框new Viewarg2,longarg3)/根据当前的书签的名字,找到对应的书签的页号,删除这条 dialog.cancel();/关框returncase EXIT_READER:/退框对应的总垂直方向 /标题行的水平 case

15、EXIT_READER:/退框对应的总垂直方向 /标题行的水平 LinearLayoutllt=new/标题行的文().getColor(R.color.white);/ 字体颜/将标题行添加到总 LinearLayout ll/newpublicvoidonClick(Viewv)框savePreference();/当前书页退出时,保存现saveCurrentData();/当前 hashMap 的信息存入l.addView(eok);/加入linearLayout /Button框savePreference();/当前书页退出时,保存现saveCurrentData();/当前 has

16、hMap 的信息存入l.addView(eok);/加入linearLayout /ButtoneCancel=newButton(ReaderActivity.this); newpublicvoidonClick(View dialog.cancel();/框lDELETE_ONE_BOOKMARK:/删除框框对应的总垂直方向 /标题行的水平 /标题行的文deTitle.setTextSize(20);/设置字体大().getColor(R.color.white);/ 设deTitle.setTextSize(20);/设置字体大().getColor(R.color.white);/

17、设字体颜/将标题行添加到总 LinearLayout /new dialog.cancel();/取lldeb.addView(deok);/加入linearLayout /ButtondeCancel=newButton(ReaderActivity.this); newpublicvoidonClick(View dialog.cancel();/框showDialog(SELECT_BOOKMARK);/显示选择书签框newpublicvoidonClick(View dialog.cancel();/框showDialog(SELECT_BOOKMARK);/显示选择书签框case框对

18、应的总垂直方向 /标题行的水平 /标题行的文 );/ 置字体颜色/将标题行添加到总 LinearLayout lldeab.setOrien ion(LinearLayout.HORIZONTAL);/水平方/ lldeab.setOrien ion(LinearLayout.HORIZONTAL);/水平方/newpublicvoidonClick(Viewv) dialog.cancel();/取框lldeab.addView(deaok);/加入linearLayout /ButtondeaCancel=newButton(ReaderActivity.this); newpublicv

19、oidonClick(Viewv)dialog.cancel();/取框case BACKGROUND_MUSIC:/布局背景音乐 dialog.cancel();/取框case BACKGROUND_MUSIC:/布局背景音乐 框框setFontSize(dialog);/setFontSize方法显示布局的dialog /publicvoidfinalFilefiles=lvutills.getFiles(sdcardPath);/获取根节点文件列表 lvutills. oListView(files,lv);/ListView 列表中 /OnClickListener 为View 接口,

20、其实现者负View.OnClickListener()publi c void onClick(View v)鼠标点击事newpublicvoidonClick(View 已经到了File cf=new File(lvutills.currentPath);/获取当前文newpublicvoidonClick(View 已经到了File cf=new File(lvutills.currentPath);/获取当前文件列表的路径对应的文文 /标题行的水平 lln.setGravity(Gravity.CENTER);/居/lln.setLayoutParams(new ViewGroup.La

21、youtParams(200, /标题行的文().getColor(R.color.white);/设置字体颜/将标题LinearLayout /条目创建 /初始化ListViewlv=new/为 ListView 准备内BaseAdapter/将标题LinearLayout /条目创建 /初始化ListViewlv=new/为 ListView 准备内BaseAdapterba=new ame.length;/总共几publicObjectarg0)returnnull;publiclongarg0)return0; /为书签设 定 图片 image.setLayoutParams(new

22、Gallery.LayoutParams(30, 30);/动态生成每条书签对应的 amearg0);/设置内tv.setTextSize(20);/设置字体大设置字体颜returntv.setTextSize(20);/设置字体大设置字体颜returnlv.setAdapter(ba);/ListView 设置内器 longarg3)/根据当前的书签的名字,找到对应的书签的页号,根据页号确定切换到那一caseif(ReaderActivity.this Rcaseif(ReaderActivity.this Constant.I=R.raw Rdialog.cancel();/关/初始化到当

23、前文件第 X Rdialog.cancel();/关/初始化到当前文件第 X readerView.currRR=new readerView/设置字体颜 /标题行的水平 lln.setGravity(Gravity.CENTER);/居/lln.setLayoutParams(new ViewGroup.LayoutParams(200, /标题行的文().getColor(R.color.white);/设置字体颜/将lln.setLayoutParams(new ViewGroup.LayoutParams(200, /标题行的文().getColor(R.color.white);/设

24、置字体颜/将标题LinearLayout /条目创建 /初始化ListViewlv=new/为 ListView 准备内BaseAdapterba=new return fontSizeIds.length;/总共几个选publicObjectarg0)returnnull;publiclongarg0)return0; LinearLayoutllb=newLinearLayout(ReaderActivity.this); llb.setOrien ion(LinearLayout.HORIZONTAL);/设置朝向llb.setPadding(5,5,5,5);/设置四/为书签设定ima

25、ge.setScaleType(ImageView.ScaleType.FIT_XY);/按照原图比image.setLayoutParams(newGallery.LayoutParams(30,30); /动态生成每条书签对应的 image.setScaleType(ImageView.ScaleType.FIT_XY);/按照原图比image.setLayoutParams(newGallery.LayoutParams(30,30); /动态生成每条书签对应的 tv.setTextSize(20);/设置字体大().getString(fontSizeIdsarg0);/设置内设置字体

26、颜returnlv.setAdapter(ba);/ListView 设置内器long arg3) /重写选项被单击事件的处理方caseif(Constant.TEXT_SIZE!=16)/如果当前字体大小不等于要换到的updataBookMarkAndHashMap();/更新 else/如果相/case 1:if(Constant.TEXT_SIZE!=24)/如果当前字体大小不等于要换到的/case 1:if(Constant.TEXT_SIZE!=24)/如果当前字体大小不等于要换到的updataBookMarkAndHashMap();/更新 else/如果相/case 2:if(C

27、onstant.TEXT_SIZE!=32)/如果当前字体大小不等于要换到的updataBookMarkAndHashMap();/更新 else/如果相/dialog.cancel();/关框, /初始化到当前文件第 X /初始化到当前文件第 X readerViewrepanew readerView/关框new readerView readerViewnew readerView/关框(new readerView(new readerViewnew Constant.COLOR=0 x f0000; readerView/关框new readerViewnew readerViewn

28、ew readerView/关框publicvoidnewpublicvoidonItemClick(AdapterViewarg0Viewarg1, long arg3) /publicvoidnewpublicvoidonItemClick(AdapterViewarg0Viewarg1, long arg3) /重写选项被单击事件的处理方法String s=dl.txtNamearg2*2+1; /向 Handler 发送信publicvoid/向各个界面跳转的方publicvoidpublicvoidreaderView=new readerView readerView public

29、voidpublic View()/进入百纳科技界publicvoidpublic View()/进入百纳科技界public void isWhichTime()/判断是第几次打Context.MODE_PRIVATE);/设为模式为私 , String lastTimePath=sp.getString(path, null);/得到上一次 StringlastTimePage=sp.getString(pagenull);/得到上一次 , , if(lastTimePath=null)/如果是没有选过书(包括在说明界面退出程序和第一次打Constant.CURRENT_LEFT_START

30、=0;/当前书页左上方的索引值为 0Constant.CURRENT_PAGE=0;/当前书页为 )if(isOneTime=null)/如果是第一次打/使用默认字体大小,无动else/如果曾经在说明界面退出/确定字体大(lastTimeFontSize);/得到上一次在说明界面的字体大/给常量类中的各个常量重新赋Constant.changeRatio();/调用自适应屏幕的方)/else/如果是第 n data=SQLDBUtil istToBytes(readerView.currBook);/hashMap 转化为/else/如果是第 n data=SQLDBUtil istToByt

31、es(readerView.currBook);/hashMap 转化为SQLDBUtil.recordInsert(Constant.FILE_PATH,data);/ 将当前的路径和的byte 形式存入数据库catch(Exception public void savePreference()/当前书页退出时(点击退出按钮)保存/没有动作发else/如果是在读书界面退出,保存现场/page存入preference , 当前路径存入 editor.putString(pageString.valueOf(pagepreference(型editor.putString(name,Const

32、ant.TEXTNAME);/将当前书的名字editor.putString(isOneTime, /当字体变化后,更新书签和 HashMap 中存放数据的方publicvoid/判断数据库中是否存在当前这本书的 if(haveBookMark)/如果存在书 if(haveBookMark)/如果存在书有的 left_start 的值放在一个数组中更新 hashMap 到书签中的 left_start 处的值。然后不清空 hashMap读到的位置StringnameBookMark=null;/暂时存放书签的名字 pageBookMark = null;/暂时存放书签的页数 对应的 catch(Exception 对应readerView.currRR 对hashMap 中找到leftStartm=readerView.currRR.leftStart;/leftstart 的tempLeftStart=Constant.CURRENT_LEFT_S

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论