本章将介绍一些在开发中用到的一些常用且值得介绍的Android 基础知识和技术,包括Fragment、Slidingmenu、RecyelerView、HelloCharts框架和Ormlite框架。
Fragment
设计中包括添加菜品界面、顾客点餐界面、数据统计界面等几乎所有的界面均使用Fragment来构建。
“Fragment”是中文“片段,碎片”一意思。Android系统由于其开源的特性,在短时间内拥有了大量的设备支持,不同的设备拥有不同的屏幕尺寸,为了令一应用可以更容易地适配不同设备,Google设计出了Fragment机制。Fragement必须依附Activity而存在,生命周期也依托在Activity的生命周期之上。Activity和Fragment生命周期依附关系对照图见下图。
Activity和Fragment生命周期依附关系对照图
Frgment有两种使用方法。一种是直接将Fragment当成普通控件直接写在Activity的布局文件中,然后继承Fragment类,重写onCreateView方法进行设置和调用。一种是使用FragmentManager方法对Fragment进行动态加载,这种方法因为其连接性及灵活性,结合本设计的应用场景,本设计在设计中一般选用的是这一种动态加载方法。每切换到一个新的功能界面时,用FragmentTransaction的replace方法将主界面替换成新的fragment,所有功能操作都在新的fragment中进行,保证了功能的流畅性和每个功能界面的独立性。
Fragment切换的代码实现:
OrderFragment orderFragment = new OrderFragment();
FragmentManager fm = getFragmentManager();
FragmentTransaction transaction = fm.beginTransaction();
orderFragment.setArguments(bundle);
transaction.replace(R.id.layout_main, orderFragment);
transaction.addToBackStack(null);
transaction.commit();
Slidingmeu
设计中的客户端侧滑菜单使用的是Slidingmenu的实现方式。Slidingmenu是Android中比较常用的侧滑菜单的实现方式,是GitHub上的一个开源项目,能够在主界面中设置菜单的左侧滑出和右侧滑出,不占用主屏幕的面积,可以极大地运用起设备屏幕的可视化区域。代码托管地址: https://github.com/jfeinstein10/SlidingMenu
Slidingmeun的使用方法主要分为以下几步设置:
(1)在使用Slidingmenu时,首先需要新建一个Slidingmenu的对象:
SlidingMenu menuview = new SlidingMenu(this);
(2)设置Slidigmenu的滑出方式,即从左边滑出还是右边滑出:
menuview.setMode(SlidingMenu.LEFT);(从左侧滑出)
(3)设置屏幕的触摸模式,即如何触摸时会促发侧滑菜单令其弹出。这个方法提供了三种触摸触发方式,分别是TOUCHMODE_MARGIN、TOUCHMODE_FULLSCREEN 和TOUCHMODE_NONE。TOUCHMODE_MARGIN表示仅从滑出边的边缘触摸时会促发侧滑菜单滑出,TOUCHMODE_FULLSCREEN表示从全拼触摸都会触发侧滑菜单滑出,TOUCHMODE_NONE则表示不管从任何地方触摸侧滑菜单都不会促发侧滑菜单滑出,需要在按钮或其它地方设置相应事件触发侧滑菜单滑出。
(4)设置滑动菜单视图的宽度:
menuview.setBehindOffsetRes(R.dimen.slidingmenu_offset);
(5)设置渐入渐出效果的值 :
menuview.setFadeDegree(0.28f);
(6)设置所依附的Activity:
menuview.attachToActivity(this, SlidingMenu.SLIDING_CONTENT);
(7)设置布局
menuview.setMenu(R.layout.leftmenu);
RecyclerView
RecyclerView是一个列表显示控件,用于在有限的界面中显示大量的的数据,可以完美地替代原有的ListView。RecyclerView的框架具有高度耦合的特性,即插即用,用完解耦即可复用,灵活性极强。通过布局管理器LayoutManager,可以设置RecyclerView多种不同的列表显示方式,如横向显示方式、纵向显示方式、瀑布流显示方式等。通过ItemDecoration,可以设置显示项之间的间隔,不仅仅是间隔的距离,还包括间隔的图案样式。通过ItemAnimator,可以设置Item的动画样式,如点击动画、移除动画和滑动动画等。不同的点击事件和滑动事件也可以自定义。
RecyclerView的基本用法:
(1)在布局文件中加入RecyclerView控件;
(2)写Item布局文件;
(3)设置数据适配器,绑定数据;
(4)在适配器中对Item等进行设置,包括显示的Item数、显示内容、点击和滑动事件的回调接口等。
HelloCharts
设计中的数据统计界面中的饼状图是使用HelloCharts来实现的。HelloCharts是一个开的源图标库,性能优越,图标完善,UI风格美观且现代化,坐标轴也相当的精细,支持图表的缩放、滑动和平移,拥有简介而流畅的动画效果。HelloCharts支持的图标类型包括:
(1)线图(三线,填充线,分散点)
(2)柱形图(分组,堆积,负值)
(3)饼图
(4)气泡图
(5)组合图(列/行)
(6)预览图(柱形图和直线图)
用HelloCharts绘制的柱状图示例如图
用HelloCharts绘制的柱状图
Ormlite
设计中的本地数据库操作部分使用的框架是Ormlite。Ormlite是一个轻量级的注入式数据库框架,在本设计中用其来进行本地数据库操作代码的编写。通过Ormlite可以十分轻松地建立数据库和表,并对数据进行增删改查等基本的数据库操作。与原生的数据库代码相比,使用Ormlite会更加简便,提高了开发效率,降低了数据库操作的出错率,并且在数据库操作出现错误时,能更快速地找到出问题的地方予以修正。
Ormlite的基本使用方法为:
(1)到ORMLite官网下载相应的jar包;
(2)在工程文件中导入相应的jar包;
(3)按项目自身要求配置对应的Bean类;
(4)继承OrmLiteSqliteOpenHelper类编写一个DAO类,DAO类中需要实现数据库项的的创建和更新两种方法。