做android开发,很大部分都是在做界面上的开发,所有要了解各种动画和某些特殊效果的时候必须使用matrix canvas camera来处理,本人在开发各种3d效果时做了如下总结
原则:一切动画皆为画,记住这点很多东西都可以解决或者优化得相对不错
camera:
1、要做3d效果就必须使用这个东西(使用opengles例外),这个的具体使用方式看官方文档即可,这里不做多讲解,这里只是写一些该注意事项,使用camera.translate camera.rorateX camera.rorateY camera.rorateZ的时候一定要注意调用的顺序,若是顺序错了,效果完全不一样,比如在go桌面的盒子(内)效果的时候,若是你先camera.rorateY(angle),然后再camera.translate(0,0,z)的话,效果就永远无法实现,里面的那条边永远都不能紧挨着移动的。再进行旋转的时候(y轴)正时针方向为负的,逆时针方向是正的
matrix:
1、用法也不说了,问度娘就可以了;在使用matrix的时候一定要注意pre和post的区别,post的相当于再上一个矩阵的继承上进行前乘((x,y)*M),pre的话是在标准矩阵的基础上进行改变的,如 postTranslate(x),preTranslate(x,0) 相乘的顺序是先把标准矩阵进行pre的操作,然后做pre后的矩阵再post操作,这个可能不太好理解,得多写demo的慢慢去领悟,
canvas的用法上上面的差不多,不多说了,以后遇到的时候再更新