基于Android手机电子书阅读器的设计与实现毕业设计 联系客服

发布时间 : 星期一 文章基于Android手机电子书阅读器的设计与实现毕业设计更新完毕开始阅读e3cee3ca29ea81c758f5f61fb7360b4c2e3f2a38

}

.setIndicator(composeLayout(\我的设置\ R.drawable.setting)) .setContent( new Intent(this, MySetting.class) .addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP))); myTabHost.setCurrentTab(1);

myTabHost.setOnTabChangedListener(new OnTabChangedListener()); updateTab(myTabHost);

将程序关联成Android系统默认打开程序代码:

接收从外部传来的参数并处理的代码: Intent intent = getIntent();

String action = intent.getAction();

if (intent.ACTION_VIEW.equals(action)) { String res_path = \ try { res_path = URLDecoder.decode(intent.getDataString(), \ } catch (UnsupportedEncodingException e) { e.printStackTrace(); } }

3.3书籍管理模块功能描述

图8所示是书籍管理主页面,最上面标题栏有导航按钮和书籍选择按钮。当点击导航按钮时会从左侧弹出导航栏如图9所示,并把书籍从每行显示三个调整到每行显示两个。当点击导航里的按钮时会显示子功能导航,当再点击其它按钮时,会收起前面的子功能导航,展开当前的子功能。当单击书籍选择按钮时会弹出书籍选择窗口,选择里面的书架则进入相应的书架界面,同时还可以通过左右滑动来切换书架界面。当单击书籍时会打开相应的书籍阅读界面,长按某书籍时会弹出书籍操作窗口如图10所示,书籍操作窗口中有删除阅读记录、删除阅读记录和文件、移动到历史书架、移动到收藏书籍、查看书籍详情和分享本书,不

同书架中的操作项略有不同。

图8 书架效果页面 图10 书籍操作窗口

初始化ViewPager的核心代码如下: private void InitViewPager() {

mPager = (ViewPager) findViewById(R.id.vPager); listViews = new ArrayList();

Intent intent = new Intent(BookShelf.this, BookShelfActivity.class); intent.putExtra(\ listViews.add(getView(\

Intent intent2=new Intent(BookShelf.this, BookShelfActivity.class); intent2.putExtra(\ listViews.add(getView(\

Intent intent3=new Intent(BookShelf.this, BookShelfActivity.class); intent3.putExtra(\ listViews.add(getView(\ adapter = new MyPagerAdapter(listViews); mPager.setAdapter(adapter); mPager.setCurrentItem(0);

mPager.setOnPageChangeListener(new MyOnPageChangeListener()); }

单击书籍跳转至阅读页面进行阅读代码如下: private void goReadActivity(BookInfo tem){ if(new File(tem.bookPath).exists()){

Intent intent = new Intent(BookShelfActivity.this, ReaderActivity.class); bundle = new Bundle();

图9 导航栏页面

bundle.putInt(\

bundle.putString(\ bundle.putString(\ bundle.putInt(\

bundle.putDouble(\ intent.putExtras(bundle); startActivity(intent); }else{ booksTableOperate.delete(tem.bookId); adapter.notifyDataSetChanged(); Toast.makeText(BookShelfActivity.this, \书籍文件不存在,移除记录~\LENGTH_SHORT).show(); } }

书籍排序的核心代码(以按时间排序为例):

SimpleDateFormat format = new SimpleDateFormat(\try {

long time1 = format.parse(book1.lastRead).getTime(); long time2 = format.parse(book2.lastRead).getTime(); if (time1 < time2) { return 1;

} else if (time1 > time2) { return -1; } else { return book1.bookName.compareToIgnoreCase(book2.bookName); }

} catch (ParseException e) { e.printStackTrace(); }

分享本书的代码如下:

Intent sendIntent = new Intent();

sendIntent.setAction(Intent.ACTION_SEND); sendIntent.putExtra(Intent.EXTRA_TEXT, \《\ selectBook.bookName+\》\ \这本书还不错,分享给大家看看!\ sendIntent.setType(\ startActivity(sendIntent);

点击添加书籍中的快速扫描按钮,进入此界面开始扫描,通过自定义文件名过滤类来进行搜索并显示正在扫描界面,其中有扫描到的文件数目如图11所示。扫描完成后使用ListView组件显示扫描结果,最上面标题栏有返回按钮、我的书籍标题、重新扫描按钮。当长按某文件时则切换到多选模式如图12所示,最

上面标题栏改变为标记全部按钮、选中的文件数目显示、加入书架按钮、取消按钮。多选模式下可以点击文件进行逐个选择,也可进行全选和取消全选操作。当用户选择是标题栏上会有对应的已选文件个数显示。选好之后点击加入书架将会把选中的文件加入最近书架中,也可以点击取消则取消多选模式。

图11 正在扫描

图12 多选模式

时时显示扫描到的文件个数部分代码: Handler handler = new Handler() {

public void handleMessage(Message msg) { if (msg.what != -1) { numText.setText(\ } else { listData = listTem; ll.setVisibility(View.GONE); } super.handleMessage(msg); }; };

class UpdataBooks extends Thread { @Override

public void run() { handler.sendEmptyMessage(1); getAllFiles(file);