职场文秘网

首页 > 演讲致辞 > 会议致辞 / 正文

基于Android,Studio的饼图账单的设计与开发Android毕业论文

2020-08-10 20:24:12

毕 业 论 文 基于Android Studio的饼图账单的设计与开发Design and Development of PieChart Billing Based on Android Studio 所在系院:
计算机信息工程系 专业班级:
计算机应用技术 学生学号:
学生姓名:
指导教师:
年 月 日 目录 目录 I 摘 要 I Abstract II 引言 1 第一章 Android基本介绍 1 第二章 国内外手机系统现状 2 2.1 iOS:生态封闭和推送机制 2 2.2 Android:依然碎片化,但安卓7.0速度提升 3 2.3 Win10m:机型太少,能够更新不多 5 第三章 Android相关组件介绍及分析 6 3.1 Fragement 6 3.2 Fragement生命周期 6 3.3 ViewPager 7 3.4 JSON 7 3.5 MPAndroidChart 8 第四章 Android活动的生命周期 8 4.1 活动的生命状态 8 4.2 活动的运作流程 10 第五章 饼图账单的设计与实现 11 5.1 研究目标 11 5.2 实现步骤 11 5.2.1 使用ViewPager+Fragment实现案例布局 11 5.2.2 Json数据解析、封装、传递给Fragment 14 5.2.3 绘制账单饼状图并显示账单数据 16 5.2.4 实现切换按钮点击事件(显示其他月账单界面) 16 5.2.5 程序完成 17 第六章 主要结论 17 参考文献 18 致谢 19 附录 20 摘要 随着信息化社会的发展,Android智能产品已日益成为越来越多的人们选择的移动终端产品。伴随着Android智能手机与平板电脑已经在我们生活大量的使用,越来越多的基于Android开发平台的应用也随之而出,为丰富人们使用Android智能产品的用途,使其可以帮人们记录一些事情,并提醒用户做出相应的操作。本文设计开发的本Android饼图账单软件也是应用开发的一个idea,该软件能帮助人们查看显示每月账单,从而合理规划消费和投资增强对个人财务的敏感度,提高理财水平。

Android饼图账单主要特点在于利用饼图直观的展示各项消费所占当月总支出的百分比,并且在点击具体消费内容实现饼图下滑放大使内容更加详细。

Android饼图账单的开发过程包括1.ViewPager+Fragment打造左右滑动UI架构,2.Json数据解析,封装,与数据传递 ,3.MPAndroidChart打造饼状图的功能,4.实现与问题解决。本次开发工具选择了Android Studio2.3.1。

关键词:账单;
Android Studio;
ViewPage;
Fragment;
Json;
MPAndroidChart Abstract With the development of information society, Android intelligent products have increasingly become more and more people choose mobile terminal products. With Android intelligent mobile phone and tablet computer is already in use in our life a lot, more and more applications based on Android platform are also appeared, for rich people use Android use of smart products, which can help people to record some of the things that make the corresponding operation and remind users. A idea this paper designed and developed the Android pie chart is billing software application development, the software can help people see the display monthly bills, thus the reasonable planning of consumption and investment to enhance sensitivity to personal finance, improve financial management level. Android pie chart is mainly characterized by the use of the pie chart shows the proportion of consumption of the total monthly expenditure, and click on the specific content of the consumer to achieve the decline in the content of the cake ambassador content. The development process of Android pie bills including 1.ViewPager+Fragment sliding around to create the UI architecture, 2.Json data analysis, package, and data transfer, 3.MPAndroidChart to create a pie chart, 4 implementation and problem solving. The development tool selected Android Studio2.3.1. Key words: Android Studio; ViewPage; Fragment; Json; MPAndroidChart 引言 目前随着移动设备越来越普及以及移动设备的硬件的提升,移动设备的功能越来越完善,移动设备的系统平台也日渐火热起来。目前国内最常见的移动开发平台有Symbian,iPhone,Windows Phone以及当下正在逐步兴起的Android。目前为止国内已经有很多Android系统的用户。截止2010年第二季度Android系统的国内市场占有率已经过10%,在西欧以及北美智能手机市场占有率也在20%左右。可见Android系统正在崛起之中。但是对于Android系统的应用和开发在国内仍然属于起步和探索阶段。急需要大量的相关技术和人员的投入。

第一章 Android基本介绍 Android一词的本义指“机器人”,同时是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件、用户界面和应用软件组成。Android的Logo是由Ascender公司设计的,诞生于2010年,其设计灵感源于男女厕所门上的图形符号,于是布洛克绘制了一个简单的机器人,它的躯干就像锡罐的形状,头上还有两根天线,Android小机器人便诞生了。其中的文字使用了Ascender公司专门制作的称之为“Droid ” 的字体。Android是一个全身绿色的机器人,绿色也是Android的标志。颜色采用了PMS 376C和RGB中十六进制的#A4C639来绘制Android操作系统的品牌象征。有时候,它们还会使用纯文字的Logo。[1] 图 一-1 Logo 第二章 国内外手机系统现状 在过去很长的一段时间,苹果iOS、谷歌安卓和微软Windows被称作三大移动操作系统,尽管随着视窗系统在手机领域的份额不断下滑,“万年老三”的宝座已经易位给了YunOS,但不少人习惯上还是认为他们是智能手机系统的代表。

而说到这三大系统的更新方面,就是另一个局面了,可以说有人欢喜有人愁。今天就带大家看看这三大手机系统现在的更新现状。

2.1 iOS:生态封闭和推送机制 众所周知,iOS是一个生态封闭的移动操作系统。苹果为了专注于营造自己的生态,在某些地方多多少少给用户带来了一些不便。但不得不承认,这样的做法在系统升级上反而是有好处的,更便于集中管制。

图 二-1 ios iOS只会预装在苹果设备上,而苹果每年推出的iPhone一般不超过3款,即使是iPhone全系的数量加起来,可能也就和一家国产安卓厂商一年发布的新机数量差不多,再加上又是自家的系统,在系统更新和维护的压力上自然要小很多。

图 二-2 IOS Lanchues 以最新的iOS 10为例,据国外分析机构Fiksu(数据截至去年10月)统计,iOS 10在正式版上线一个月后,系统覆盖率已经高达66.7%,大幅逆袭以往版本,当然现在已经不止这点了。而苹果日前也向用户推送了iOS 10.3.1系统,相信在看文章的iPhone用户几乎都升级了吧?当然,iOS 10之所以覆盖率能迅速上升,和苹果的推送机制分不开。新系统发布能让用户第一时间知道并立刻升级的,也就只有 OTA了(未越狱)。苹果采用的是一种间歇式提醒的方式,让用户想不升级都不行,因为新系统的提醒更新页面就一直在你眼前晃悠,根本无法忽视。

2.2 Android:依然碎片化,但安卓7.0速度提升 相对于苹果的封闭专一,安卓因为开放而在系统升级上元气大伤,要想升级系统就对用户选手机的眼光要求特别高,毕竟不是每台安卓机都有资格升级。谷歌只能保证自己亲儿子最快升级,第三方厂商都是“同床异梦”:有像LG这样7.0发布后78天就推送正式更新的(韩版G5),也有像oppo、vivo这样一个系统版本用到换机的。

图 二-3牛扎糖系统 根据谷歌2017年4月的安卓系统份额统计,最新的牛轧糖系统份额依然不容乐观,合占不到5%,处于安卓系统主力的依然是棒棒糖和棉花糖。

图 二-4 4月份额统计 这两个系统份额的大幅度崛起,和去年国产手机的爆发不无关系,但爆发的同时也在市面上涌现了一批出厂预装低版本系统的机型。但同时也要注意到,牛轧糖系统的升级速度相比以往版本发布半年后要更加乐观。这方面国产厂商也要记一功,诸如华为、一加等部分勤劳的国产厂商,尽管没有抢到全球首发,但是和首批升级的国际厂商在更新速度差距方面越来越小,甚至还超过了一些原本更新速度就不快的国际厂商,例如三星。

图 二-5 Emotion UI 不过整体上看,尽管升级速度有所提升,但安卓在系统更新上还是有继续进步的空间。目前大部分厂商都关注于新系统发布当年所推出的手机更新,而前一年的机型升级率都非常低,这点是不能忽视的。

2.3 Win10m:机型太少,能够更新不多 如果说在WM和WP时期,微软在手机行业还算有点话语权,那么到了Win10m时期,即使是系统升级也显得分外凄凉。

近日,微软公布了Win10m的创作者更新(Creators Updates),但出人意料的是,能够升级这一系统的全球仅有13款机型,并且有不少都是第三方厂商的产品。

总之,在市场稳定快速增长的同时,中国安卓手机市场将呈现五大发展趋势:多媒体和移动应用需求的上升,将成为市场发展的主要动力;
PDA功能类和开放程度高的操作系统产品,将是手机产品的发展赵势;
产品持续大幅度降价和价格 竞争趋于激烈,将是产品价格发展的趋势;
渠道形式多样化和手机渠道仍占主流,将是产品渠道发展的主要趋势;
差异化售后服务和个性化增值服务,将成为产品服务发展的趋势。

总体来说,Android智能手机系统以它丰富多样并超前的功能给我们的生活带来了巨大改变但从利弊方面来说,它在给我们带来方便的同时,也带来一些负面影响。因此,我们应该理性面对,理智使用,不能沉迷于此,更不能凭借它的功能为所欲为。我们应该正确面对Android,让它随着时代与科技的发展,给人类带来更多的福利。如此一来,安卓手机的发展前景才是一片光明的。

第三章 Android相关组件介绍及分析 3.1 Fragement Android 常用组件之一,可以有效解决不同屏幕分辩率的动态和灵活UI设计。大屏幕如平板,小屏幕如手机,平板电脑的设计使得其有更多的空间来放更多的UI组件,而多出来的空间存放UI使其会产生更多的交互,从而诞生了fragments 。fragments 的设计不需要你来亲自管理view hierarchy 的复杂变化,通过将Activity 的布局分散到frament 中,可以在运行时修改activity 的外观,并且由activity 管理的back stack 中保存些变化。

3.2 Fragement生命周期 (1) onAttach()//当一个Fragment对象关联到一个Activity时调用。

(2) onCreate()//初始创建Fragment对象时调用。系统创建Fragments 时调用,可做执行初始化工作或者当程序被暂停或停止时用来恢复状态, 跟Activity 中的onCreate相当。

(3) onCreateView()//创建与Fragment对象关联的View视图时调用。用于首次绘制用户界面的回调方法,必须返回要创建的Fragments 视图UI。假如你不希望提供Fragments 用户界面则可以返回NULL。

(4) onActivityCreated()//当Activity对象完成自己的onCreate方法时调用。

(5) onStart()//Fragment对象在ui可见时调用。

(6) onResume()//Fragment对象的ui可以与用户交互时调用。

(7) onPause()//Fragment对象可见,但不可交互。有Activity对象转为onPause状态时调用。

当用户离开这个Fragments 的时候调用,这时你要提交任何应该持久的变化,因为用户可能不会回来。更多的事件可以参考上图的生命周期关系图。

(8) onStop()//有空间完全遮挡;
或者宿主Activity对象转为onStop状态时调用。

(9) onDestroyView()//Fragment对象清理view资源时调用,也就是移除fragment中的视图。

(10) onDestroy()//Fragment对象完成对象清理View资源时调用。

(11) onDetach()//Fragment对象没有与Activity对象关联时调用。

当一个fragment被创建的时候执行1-4;

当这个fragment创建完毕,到对用户可见的时候,执行5-6;

当这个fragment从可见到不可见时,执行7-8;

当这个fragment被销毁了(或者持有它的activity被销毁了),执行9-11;

另外在3-5,可以使用Bundle对象保存一个fragment的对象。

3.3 ViewPager ViewPager继承自ViewGroup,也就是ViewPager是一个容器类,可以包含其他的View类 ViewPager是一个允许使用者左右滑动数据页面的布局管理器。你可以通过一个适配器(PagerAdapter)来管理要显示的页面。

不过要注意的是,这个类目前还处于初期的设计和开发。随着今后兼容库的更新,API文档也会进行更改,同时应用程序在编译时也需要对代码进行一定的修改。

ViewPager更多的时候会与Fragment一起使用,这是一种很好的方法来管理各个页面的生命周期。Android提供了一些专门的适配器来让ViewPager与Fragment一起工作,也就是FragmentPagerAdapter与FragmentStatePagerAdapter。他们基本上可以满足大部分常见的永续需求,并且他们都有简单的代码样例来展示如何用他们来建立一个完整的用户页面。

所以Viewpage具有以下特性:
1) ViewPager主要用来左右滑动。(类似图片轮播) 2) ViewPager要用适配器来连接“视图”和“数据”。(大家可以联想下listview的使用方法,理是类似的) 3) 官方推荐ViewPager与Fragment一起使用,并且有专门的适配器。

3.4 JSON JSON(JavaScript Object Notation, JS 对象标记) 是一种轻量级的数据交换格式。它基于 ECMAScript 规范的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得 JSON 成为理想的数据交换语言。

易于人阅读和编写,同时也易于机器解析和生成,并有效地提升网络传输效率。

3.5 MPAndroidChart Android开源图表库MPAndroidChart的简单用法。MPAndroidChart是一款基于Android的开源图表库,它可以实现在Android设备上绘制各种统计图表。

第四章 Android活动的生命周期 Android平台是个手机作业系统。撇掉其他功能不谈,手机的特性,就是应该能随时在未完成目前动作的时候,暂停正在使用的功能,切换到接电话、接收短信模式,而且在接完电话回到应用程序时,还希望能看到一样的内容。现在用户使用智能手机,大多已习惯使用多工的作业系统(如windowsMobile),可以在用手机听音乐的同时,执行其他多个程序。同时执行多个程序有它的明显好处,但也有它的缺点。每多执行一个应用程序,就会多耗费一些系统内存,而手机里的内存是相当有限的。当同时执行的程序过多,或是关闭的程序没有正确释放掉内存,系统运行时就会觉得越来越慢,甚至不稳定。为了解决这个问题,Android引入了一个新的机制—生命周期。

Android应用程序的生命周期是由Android框架进行管理,而不是由应用程序直接控制。通常,每一个应用程序(入口一般会是一个活动的onCreate方法),都会占据一个进程。当系统内存即将不足的时候,会依照优先级自动进行进程的回收。不管是使用者或开发者,都无法确定应用程序何时会被回收。关于进程的生命周期将在下一节中介绍,本节主要介绍活动的生命周期。

一个活动类别除了OnCreate方法之外,还预先定义了onPause(暂停)、OnResume(继续)等的基本方法,当从一个活动切换到另一个活动的时候,原来的活动将经过一连串的状态改变。开发者可以在程序中添加一些各状态相对应的流程,每次活动状态改变时,就会执行相对应的流程。要让用户有好的使用体验,活动需要在各个周期中负责保管状态、恢复状态、传送资料等工作。

4.1 活动的生命状态 Android的虚拟机是使用堆栈管理。主要有四种状态: (1) 活动状态 活动状态是指用户启动应用程序或活动后,活动运行中的状态。在Android平台上,同一个时刻只会有一个活动处于活动或运行状态。其他的活动都处于未启动、停止或是暂停的状态。

(2) 暂停状态 暂停状态是指当活动暂时暗下来,退到背景画面的状态。当警告对话框或电话来了时, 都会让原来运行的活动退到背景画面。新出现的警告对话框等界面元件盖住了原来的 活动画面。活动处在暂停状态时,用户无法与原活动互动。

(3) 停止状态 停止状态是指有其他活动正在执行,而这个活动己经离开屏幕,不再动作的状态。通 过按返回键,可以调出所有处于停止状态的应用程序列表。处于停止状态的活动,还 可以通过通知来唤醒。

(4) 已回收或未启动状态 已回收或未启动状态是指活动尚未被启动、已经被手动终止或己经被系统回收的状态。

要手动终止活动,可以在程序中调用finish方法。如果是被系统回收,可能是因为内 存不足了,所以系统根据内存不足时的回收规则,将处于停止状态的活动所占用的内 存回收。

图 四-1Activity活动流程图 图4-1所示的七个状态又可以归纳成三组: (1) 资源分配(创建/销毁) 完整的活动生命周期由创建状态开始,由销毁状态结束。创建时分配资源,销毁时释放资源。

(2) 可见与不可见(启动/重新启动/停止) 当活动运行到启动状态时,就可以在屏幕上看到这个活动。相反地,当活动运行到停止状态时,这个活动就会从屏幕上消失。当用户按下返回键回到上一个活动时,会先到重新启动状态,再到一般的启动状态。

(3) 用户取得屏幕的控制权(继续/暂停) 当有个警告对话框、短信、电话等信息进入时,原来的活动会进入暂停状态,暂时放弃屏幕的控制权,被中断到背景去,将前景交给优先级高的事件。当这些优先级高的事件处理完后,活动就改进入继续状态,此时又取得屏幕的控制权。

4.2 活动的运作流程 由实际运行来看,我们可以归纳出所有Android应用程序都遵循的运作流程: (1) 一般启动 启动一个活动的基本流程为onCreate一>onstart一>onResume。该流程首先分配资源给这个活动(创建状态),然后将活动的内容显示到屏幕上(启动状态);在一切就绪后,取得屏幕的控制权(恢复状态),用户可以开始使用这个程序。

(2) 调用另一个活动 调用另一个活动的基本流程为onpause(l)一>onCreate(2)一>onstart(2)一>0nResume(2)一>onStop(l)。该流程首先冻结原来的活动,再交出屏幕控制权;直到活动2完成一般启动流程后,活动1才会被停止。

(3) 回到原来活动 回到原来活动的基本流程为onPause(2)一>onRestart(1)一>onstart(l)一>onResume(1)一>onstop(2)一>onDestroy(2)。另外按返回键也可以回到原来的活动。

(4) 退出结束 退出结束的基本流程为onPause一>onStop一>onDestroy。如果程序中有直接调用finish方法来关闭活动的话,系统会跳过先冻结的阶段,直接暂停,停止,然后销毁。

(5) 回收后再启动 回收后再启动的基本流程为oncreate一>onstart一>onresume。如果被回收掉的活动一旦又重新被调用时,会像一般启动一样再次调用活动的onCreate方法。

当在模拟器上已经执行过多个应用程序,只要按下返回键,就会开启最近一次开启过的活动。所以如果要让再次被创建的活动跟原来开启过的一样,那么在活动之间切换时,就要保存资料:即在每次活动运行到暂停或停止状态时先保存资料,然后在创建时将资料读出来。

第五章 饼图账单的设计与实现 5.1 研究目标 了解Android应用程序的设计和开发过程;

使用多种组件进行Android 平台校园资讯软件的开发。

本软件是基于Android Studio的开发环境,在Android平台上的饼图账单软件。

5.2 实现步骤 5.2.1 使用ViewPager+Fragment实现案例布局 打开开发工具Android Studio,新建项目名为PieChart;
并选择API 为25,选择布局文件为空;
如下图所示;

图 五-1新建项目 图 五-2选择API 图 五-3选择Acitvity布局 修改相应的activity布局代码如下 <?xml version=“1.0“ encoding=“utf-8“?> <RelativeLayout xmlns:android=“http://schemas.android.com/apk/res/android“ android:layout_width=“match_parent“ android:layout_height=“match_parent“> <android.support.v4.view.ViewPager android:id=“@+id/vp_main“ android:layout_width=“match_parent“ android:layout_height=“match_parent“ /> </RelativeLayout> 创建PieFragment、MonthBean类并在MainActivity文件中编写相应代码利用ViewPager实现页面的左右滑动。

图 五-4创建类文件 5.2.2 Json数据解析、封装、传递给Fragment 在Json数据解析时需要将Json数据进行转义在网络下下载gson用来解析Json数据并传递给Fragment。

public class MainActivity extends AppCompatActivity { private ViewPager vpMain; private String mJson = “[{\“date\“:\“2016年5月\“,\“obj\“:[{\“title\“:\“外卖\“,\“value\“:34},“ + “{\“title\“:\“娱乐\“,\“value\“:21},{\“title\“:\“其他\“,\“value\“:45}]},“ + “{\“date\“:\“2016年6月\“,\“obj\“:[{\“title\“:\“外卖\“,\“value\“:32},“ + “{\“title\“:\“娱乐\“,\“value\“:22},{\“title\“:\“其他\“,\“value\“:42}]},“ + “{\“date\“:\“2016年7月\“,\“obj\“:[{\“title\“:\“外卖\“,\“value\“:34},“ + “{\“title\“:\“娱乐\“,\“value\“:123},{\“title\“:\“其他\“,\“value\“:24}]},“ + “{\“date\“:\“2016年8月\“,\“obj\“:[{\“title\“:\“外卖\“,\“value\“:145},“ + “{\“title\“:\“娱乐\“,\“value\“:123},{\“title\“:\“其他\“,\“value\“:124}]}]“; private ArrayList<MonthBean> mData; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); vpMain = ((ViewPager)findViewById(R.id.vp_main)); initData(); initView(); } private void initData() { Gson gson= new Gson(); mData=gson.fromJson(mJson,new TypeToken<ArrayList<MonthBean>>(){}.getType()); } 在编写代码后在模拟器上运行如下图所示:
图 五-5模拟器运行 5.2.3 绘制账单饼状图并显示账单数据 在成功完成数据解析后,接下来应该用饼状图将数据显示出来利用的是当下最获得饼状图框架:MP AndroidChart。可以利用该框架实现各种需要的饼图效果可以在https://github.com/PhilJay/MPAndroidChart 下载使用。

5.2.4 实现切换按钮点击事件(显示其他月账单界面) 在PieFrgment中实现以下代码来实现点击饼图时的旋转 public void onValueSelected(Entry e, int dataSetIndex, Highlight h) { float proportion = 360f/mData.getSum(); float angle = 90-mData.obj.get(e.getXIndex()).value*proportion/2-mData.getSum(e.getXIndex())*proportion; mChart.setRotationAngle(angle); updateDesText(e.getXIndex()); } 下面是layout布局文件的显示图:
图 五-6Layout布局 5.2.5 程序完成 最后在对各项布局文件以及类文件的编写后,得到主应用程序的运行画面如图所示:
图 五-7运行结果 第六章 主要结论 经过一个多月的努力,Android平台饼图账单应用终于完成了。由于对JAVA浓厚的兴趣引发了我对Android的好奇心,从一开始什么都不懂一直摸索完成了这个软件。

在这个过程中,我学会了很多知识,比如Android环境的搭建、Intent、Activity、Service、ContentProvider、Fragment等,但我学会的最重要的一点是,利用现有的资源去解决问题,在图书馆、在网络上寻找答案。

虽然,这个软件目前运行良好,但是我认为代码的健壮行还很差,在整个工程的构思方面也不足,用户操作界面还不够灵活,这些问题还需要今后逐一解决。与此同时,这个软件还可以进一步扩展,例如数据获取、“数据录入”等,使功能更加强大,带给用户更好的体验与生活的便捷。

参考文献 [1] GongLei,,ZhouCong,Development and Research of Mobile Termination Application Basen Android[J].Computer And Modernization,2008。

[2] Shane Conde,Android Wireless Application Development[M],AddisonWesley,2010 [3] Enck,W,Ongtang M,McDaniel P,Understanding Android Security[J],Security&Priva,IEEE,2009,7(1),P50-57 [4] Sandeep Kumar,Location Based Services using Android[C],Internet Multimedia Servis Architecture and Applications (IMSAA),2009,IEEE International Conference,P1-5 [5] 刘昌平,范明钰,Android手机的轻量级访问控制[J],人民邮电出版社,2010 [6] 杨丰盛,Android应用开发揭秘[M],北京机械工业出版社,2010 [7] 余志龙,陈昱勋,郑名杰,Android SDK开发范例大全[M],北京人民邮电出版社2010 致谢 感谢大家一贯如一的专注和无私的付出,才使得项目得以完整结束。在工贸学院度过了三年的紧张学习时光,系统地学习了移动开发的各方面知识,深深的佩服各位专业老师的学识,从中我不仅学习到编程知识,而且学到很多做人、做事、做学问的道理,在此表示真挚的谢意。在论文即将完成之际,我要感谢我的导师武云飞老师。在论文撰写的整个过程中,从论文选题、到撰写开题报告、最后到正文撰写,武老师都提出了很多宝贵意见。

武老师指出的每一个问题,指导的每一个思路,都使我有茅塞顿开之感。给我感受最深的是武老师严谨治学的态度,无论从格式规范、论文要点、还是文章结构,武老师都不厌其烦,给予我及时的帮助,使我能够最后顺利完成论文写作工作。

老师渊博的专业知识,严谨的治学态度,精益求精的工作作风,诲人不倦的高尚师德,严以律己、宽以待人的崇高风范,朴实无华、平易近人的人格魅力对我影响深远。

我相信,做项目的这段的日子对大家来说一定是一个痛苦但美好的回忆。“长风破浪会有时,直挂云帆济沧海。”这是我少年时最喜欢的诗句。就用这话作为这篇论文的一个结尾,也是一段生活的结束。希望自己能够继续少年时的梦想,永不放弃。

附录 在设置饼图账单主界面时饼图下方的TextView 文本框的宽度应该与上方饼图的直径相等,可以设置为饼图宽度的80%,也可以通过线性布局制作也可以实现。

Tags:

搜索
网站分类
标签列表