欢迎光临散文网 会员登陆 & 注册

AndroidM彩蛋源码学习(2)

2023-04-03 15:26 作者:赶码人  | 我要投稿

属性动画(ObjectAnimator.ofXXX),之前所看到的博客 / 教程都是给第三个参数(变长参数“values”)传入两个数据,实际上它可以只传入一个!表示从当前值到目标值(传入的值)



View::getOverlay()

ViewOverlay类有add、remove、clear方法,可以在view顶部添加一个Drawable.


TimeAnimator:回调函数提供totalTime和deltaTime。

这个游戏所有元素都是View,实现了GameView接口:

然后根据dt和PARAMS的一些常量(例如“PARAMS.TRANSLATION_PER_SEC”)计算出View移动到的位置(setTranslationX)



彩蛋中的彩蛋(bug)一:

Player的构造函数,修改玩家颜色的代码:

setTint应该改为:


彩蛋中的彩蛋(bug)二:

越玩越卡的原因:

刚刚提到了,彩蛋游戏中每个元素本质都是View,在他们移出屏幕的时候,每个View并没有被复用,而是removeView、在数组中移除View,使得View有机会被回收。

而这里while(i-->0),i的值首先在这里被赋值为view的数量:

然后变量i又被滥用:

于是i又不再是view的数量,导致每个移出了屏幕的view都没有被回收,所以越玩越卡。


除了这两篇文章记录的一些不常见API,

这个androidM彩蛋其他部分都是android开发的入门常识,

除了可以让初学者用来改写练习JNI,似乎没有其他值得学习的地方了。




AndroidM彩蛋源码学习(2)的评论 (共 条)

分享到微博请遵守国家法律