为了账号安全,请及时绑定邮箱和手机立即绑定

Android猜歌游戏是这样炼成的

李建 移动开发工程师
难度高级
时长10小时 0分
学习人数
综合评分9.77
39人评价 查看评价
10.0 内容实用
9.7 简洁易懂
9.6 逻辑清晰
属性private,然后使用getter,setter提供访问符合JavaBean的封装性,但相对的也增加了一点复杂性,WordButton中的属性的作用都是用来存取值之用,并没有涉及到对属性的非法访问控制,所以不使用getter,setter倒也挺好,使用时方便。
自定义GridView,把视图层与数据适配封装到一起,以带功能的视图模块在逻辑层使用,让我想起了Fragment这家伙也是这么使用的,妙,这样代码的复用性会很好。
按照MVC框架思想,数据模型层和视图层要尽可能的解耦,WordButton做为数据模型层,其中通过组合的方式包含和Button这样的视图控件,老师牺牲了代码的框架和阅读性,实效是确实降低了控制逻辑层的复杂性。以前很少使用这种编程方式,今天又学到了!感谢!
WordButton中的可见性属性mIsVisible在整个代码中没有用他去做WordButton的显示和隐藏,都是在需求显示和隐藏的时候主动调用控件的setVisible()方法来完成的。其实如果在Adapter的getView方法中通过判断mIsVisible来控制WordButton的显示和隐藏,这样在MainActivity中在控制WordButton的显示或隐藏时为mIsVisible属性赋ture为false后,直接使用Adapter的刷新方法就完成了效果,比专门又封装和调用setWordButtonVisible()方法简便一些同时又真正使用了mIsVisible属性。
如果唱片动画开始播放,播放控制按钮就隐藏,就不会有机会在播放状态去调用HandlePlayButton()方法了,这样mIsRunning就不会被判断,最终也就不会执行startAnimation()方法,所以其实没有必要使用mIsRunning变量。
mBarOutAnim结束时应该不需要设置mBarOutAnim.setFillAfter(true)?
这个还是需要有这个设置的,或者在代码中设置,或者在XML布局中通过属性设置,mBarOutAnim的原始位置是读盘位置,如果不设置fillAfter(true)的话,播杆运动完后又会回到读盘位置。
这个问题我也想过,不过结合实际,如果唱片先转的话,播杆读到的数据就读不到唱片已转过的那些数据了,所以播杆先过来准备读数据,然后唱片开始转动这样的顺序是符合实际的,我第一次做的时候是先让唱片转,然后监听唱片动画的开始,然后在唱片动画开始的时候再让播杆执行读动画,但这样虽然从效果上人眼看不出问题,但因为播杆需要300毫秒过来,也就有300毫秒的误差,精确度不够好,不过也要看具体要求了,如果唱片也在300毫秒内存放数据就没有这样的误差问题了。
老师求分享一下代码
同学们,鼓掌,快跟完了
教科书般精准,老师多出几门吧!
什么时候才有老师的这种水平,加油吧
老师真的好有耐心,这么大的工程量,不仅要写,还要给我们讲,好伟大
跪求图片资源
老师好尽职,
老师好辛苦,时间都快到12点了
课程须知
本课程是Android项目,需要大家掌握基本的Android和Java基础知识: 1、熟练使用Java语言编写代码 2、熟悉Android常用API,熟练使用Eclipse开发工具
老师告诉你能学到什么?
1、游戏基本理论 2、运用MVC理论设计程序框架。 3、Android平台下的界面设计及开发 4、如何培养良好的代码书写规范 5、动画的创建和使用

微信扫码,参与3人拼团

意见反馈 帮助中心 APP下载
官方微信
友情提示:

您好,此课程属于迁移课程,您已购买该课程,无需重复购买,感谢您对慕课网的支持!

本次提问将花费2个积分

你的积分不足,无法发表

为什么扣积分?

本次提问将花费2个积分

继续发表请点击 "确定"

为什么扣积分?

举报

0/150
提交
取消