菜单
  

    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显示和消失的效果,效果的实现是通过动画来模拟的,主要是创建两个动画的文件:
  1. 上一篇:基于NRF905的无线呼叫系统设计与实现
  2. 下一篇:JSP+mysql教材预定和发行管理系统开发与设计
  1. JAVA基于安卓平台的医疗护工管理系统设计

  2. 基于Hadoop的制造过程大数据存储平台构建

  3. php+mysql志愿者服务平台前端页面设计

  4. 《网站设计与管理》课程...

  5. Justep基于开放平台的企业...

  6. 基于IOS的游戏资讯平台的设计与实现

  7. android学习行为共享系统的设计与实现

  8. 酸性水汽提装置总汽提塔设计+CAD图纸

  9. 当代大学生慈善意识研究+文献综述

  10. 大众媒体对公共政策制定的影响

  11. 乳业同业并购式全产业链...

  12. 河岸冲刷和泥沙淤积的监测国内外研究现状

  13. 电站锅炉暖风器设计任务书

  14. java+mysql车辆管理系统的设计+源代码

  15. 杂拟谷盗体内共生菌沃尔...

  16. 中考体育项目与体育教学合理结合的研究

  17. 十二层带中心支撑钢结构...

  

About

751论文网手机版...

主页:http://www.751com.cn

关闭返回