毕业论文
计算机论文
经济论文
生物论文
数学论文
物理论文
机械论文
新闻传播论文
音乐舞蹈论文
法学论文
文学论文
材料科学
英语论文
日语论文
化学论文
自动化
管理论文
艺术论文
会计论文
土木工程
电子通信
食品科学
教学论文
医学论文
体育论文
论文下载
研究现状
任务书
开题报告
外文文献翻译
文献综述
范文
Android平台手机文本阅读软件的开发与设计(12)
4.1.3 主界面中子界面实现
主界面中实现三个界面的切换,分别是书架界面和书签界面,其中书架界面对应的布局文件是book_shelf.xml,而书签界面没有与之相对应的布局文件,是在代码里面直接创建的。
(1) 书架界面的实现。
书架界面的布局文件中主要定义了三个控件,分别是ListView、SlidingDrawer和自定义的一个SD卡遍历控件FileBrowser。
ListView是比较常用的组件,它以列表的形式展示具体内容,并能根据数据的长度自适应显示。
ListView显示内容需要一个适配器,Android自带的一些适配器如ArrayAdapter、SimpleAdapter等,但这些显示比较单一,所以本软件中自定义一个Adapter继承BaseAdapter,通过对这个适配器的扩展实现我们需要的效果,扩展成一行能显示多个内容。由于BaseAdapter是一个抽象类,我们需要实现里面的getView方法返回一个view,即视图,视图可以显示在Activity上,每个view对应列表中的一项,view的内容主要是通过反转来获得,书架中view反转的布局文件是book_shelf_listview_item.xml,再通过getCount方法返回列表显示的项的数量,这样就可以看到我们想要的界面。
ListView有一个监听器OnItemClickListner,实现里面的方法,就可以监听Touch事件,当手指点击到每一行时,可以通过监听器方法public void onItemClick
(AdapterView<?> parent, View view, int position,long id)方法中的参数position得到该行位置,这样就可以通过intent传递数据到其他Activity。本程序的思路是点击其中某一行,跳转到另一个Activity,即阅读界面,书架界面运行效果如图4.2所示。
SlidingDrawer隐藏屏外的内容,并允许用户通过handle以显示隐藏内容,这是一种类似抽屉开关的那种效果。它可以垂直或水平滑动,它有俩个View组成,其一是可以拖动的handle,其二是隐藏内容的View。它里面的控件必须设置布局,在布局文件中必须指定handle和content。SlidingDrawer运行效果如图4.3所示。
在本软件中的handle是一个ImageButton,而content这是在上文中提到的自定义的SD卡遍历控件FileBrowser。FileBrowser的实现会在下文的功能实现中做详细的说明。
图 4.2文本阅读软件书架截图
图 4.3文本阅读软件书架打开SD卡截图
(2) 书签界面的实现
这个界面在整体布局上没有使用布局文件,而是这个界面的Activity继承的是ListActivity,通过ListActivity.getListView()方法得到ListView的实例。关于列表项的呈现就和上文中书架界面的实现十分相似了,也是通过反转布局文件来显示项的视图,反转的布局文件分别是bookmark_lv_item.xml。书签界面运行效果如图4.4所示:
图 4.4书架界面运行效果截图
(3) 阅读界面的实现
阅读界面的实现主要是自定义了一个阅读翻页控件,界面的主题是很多张画布Canva,文本的内容是通过Canva.drawText()画在Canva上,而通过自定义的翻页动画连接上下画布的切换,这样就形成了翻页效果。阅读界面运行效果如图4.7所示。
由于阅读时的功能比较多,如果仅仅使用Android系统自带的Menu显然已经不能满足界面友好的要求。在文本阅读软件中自定义了一个菜单控件TabMenu,实现分栏显示菜单功能选项。
TabMenu主要是通过使用PopupWindow来实现的,设置popupwindow的view是一个GridView,gridview中是两个标题选项栏,就是菜单功能组,而在每个标题选项栏中又都有一些子选项栏。GridView的显示也是需要适配器来实现的,这里考虑到菜单的功能需要添加一些自定义的信息,所以这里也是采用了继承BaseAdapter自定义了一个适配器来绑定。为了能使TabMenu更像Menu的体验,就摸拟了Menu显示和消失的效果,效果的实现是通过动画来模拟的,主要是创建两个动画的文件:
共16页:
上一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
下一页
上一篇:
基于NRF905的无线呼叫系统设计与实现
下一篇:
JSP+mysql教材预定和发行管理系统开发与设计
考证平台静态网页设计与制作
搭建Linux桌面环境的影音平台【1261字】
抖音短视频平台视频推荐模式研究【2528字】
J2ME平台的SOAP协议研究与應用【2420字】
构建下一代网络的开放业...
Linux嵌入式系统开发平台选型探讨【2295字】
Android课程同步练习系统的设计
承德市事业单位档案管理...
公寓空调设计任务书
C#学校科研管理系统的设计
神经外科重症监护病房患...
医院财务风险因素分析及管理措施【2367字】
10万元能开儿童乐园吗,我...
国内外图像分割技术研究现状
AT89C52单片机的超声波测距...
志愿者活动的调查问卷表
中国学术生态细节考察《...