android第一个项目-计算你的生存日子之年龄计算器

寒假在家,想着自学安卓也有几个月了,那些效率高的都不知道开发出几个app 而自己却依旧停留在照着《第一行代码》练手的阶段,想着也是时候开始搞一个真正的项目,然后在网上看到一个计算你在这个世界上生存了多久的的app,画面做得很酷炫,然后想着这样的程度自己应该也能实现,就动手做了。惭愧,真正做出来的动画效果与别人家的相差甚远,果然还是别人家的东西是最好的哎。但无论怎样也算是第一个留个纪念吧。

 

首先是一个开场动画,其实也不算是动画,就是在一个activity里调用 handler的postDelayed 方法,然后在这个方法里创建一个Runnable对象,2秒后调用此对象,代码如下:

new Handler().postDelayed(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubIntent intent = new Intent(OpeningActivity.this,ChooseActivity.class);startActivity(intent);OpeningActivity.this.finish();}}, 2000);

 

然后进入主页面,主页面主要就是一个日期选择器加上一个按钮,由于默认的日期选择器比较丑,所以更改了一下activity的styles,

这样一来格式就好看了好多。



接下来就是将获取到的日期选择器的日期进行处理,首先是调用Calendar类获取当前的年、月、日,然后再跟日期选择器得到的日期进行相减,这个时候调用了SimpleDateFormat 类作为两者相减的载体,最后在将得到的数据传给结果显示页:

Calendar calendar = Calendar.getInstance();nowYear=calendar.get(Calendar.YEAR);nowMonth= calendar.get(Calendar.MONTH);nowDay =  calendar.get(Calendar.DAY_OF_MONTH);yourYear=calendar.get(Calendar.YEAR);yourMonth= calendar.get(Calendar.MONTH);yourDay =  calendar.get(Calendar.DAY_OF_MONTH);
SimpleDateFormat dFormat = new SimpleDateFormat("yyyy-MM-dd");try {Date d1 = dFormat.parse(nowYear+"-"+nowMonth+"-"+nowDay);Date d2 = dFormat.parse(yourYear+"-"+yourMonth+"-"+yourDay);long diff = d1.getTime()-d2.getTime();}

结果显示页的数字显示我用了网上的一个开源控件,RisenumberTextview,让数字从0显示到指定的值,并且可以传人一个参数指定这个动画效果显示的时长,然后还有一个进度条的显示,进度条的最大值我设置为100,为了配合数字的动画效果,我开启了一个线程让进度条递增,每增长一年休眠几微妙 ,并根据传入的年龄大小设置不同的休眠值,使得整体效果看上去更加协调,这样肯定无法保证一定同步,但也确实优化了不少,实力有限,实在汗颜。

	new Thread(new Runnable() {@Overridepublic void run() {// TODO Auto-generated method stubif (iCount>=60){for (int i = 0; i < ayear; i++) {	try {iCount = i+1;progressBar.setProgress(iCount);Thread.sleep(40);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}   }

 

最后两个activity之间的切换问题,为了使得切换时画面不那么生硬,我本来是打算前一个activity的按钮可以直接定义到后面那个activity的按钮进行切换,然而搜了好久没能找到这个教程,没办法只能退而求其次运用overridePendingTransition这个方法来实现activity间切换的动画效果,很明显效果不如人意,有三项要注意的是:

注意
1、必须在 StartActivity()  或 finish() 之后立即调用。
2、而且在 2.1 以上版本有效
3、手机设置-显示-动画,要开启状态

这个方法要求传入两个参数,一个是本activity开场的xml文件,一个是退出时的xml文件,这两个文件需要放在res文件夹下的anim文件夹里(自行创建),然后在里面设置透明度(alpha)以及切换的开始坐标(translate)等,这样一个app就基本完成了。

overridePendingTransition(R.anim.showin, R.anim.showout);


说实话这个app很简单但是做得很差,动画效果也没我之前仿照的那个好,但最为第一个app还是想纪念一下,整个app做下来收获也是蛮多的,懂得很多不知道的知识,也算是聊以慰藉吧,最后附上这个appgithub地址:

                                How Old 地址



 



本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部