至此,翻书的控件也写的差不多了,单页翻书控件和之前写的翻书控件大致差不多,之前的是一次显示2页,考虑到屏幕尺寸不一定能刚好达到2页的正常比例,为了不引起变形,继续写了这个单页翻书的控件。
不少网友对我的代码感兴趣,不过因为公司的保密协定,代码不能公布,在此只能提供技术指导,请见谅。
写好这个控件不难,对写过Android游戏的人来说应该很容易,主要采用surfaceView的动画来实现特效,再者,有一句比较关键性的代码:
view.draw(canvas);
通过这句代码,可以把一个已经布局好的View(也就是已经渲染完的)画到一个canvas对象里。对canvas做如下设置:
Bitmap tmpBmp = Bitmap.createBitmap(contentWidth,contentHeight,Bitmap.Config.ARGB_8888);
Canvas mCanvas = new Canvas(tmpBmp);
然后把已经布局好的View画入该画布,这样temBmp里的内容就是View的全部内容,相当于截屏。然后在相应的事件里,计算好位置角度,将tmpBmp画入surfaceview。
单页翻书效果如下: