大家好,本人现在在南京一家移动互联网公司做Android开发,公司项目是一款大学校园移动社交应用,目前正在紧张的开发阶段,预计圣诞节前后就会上线。该项目中涉及到很多很炫的动画效果,今天就跟大家分享一下我刚做完的一个寻找配对界面,废话不说先上图:
稍微解释一下这个界面的动画效果,最中间是自己的头像或者是产品的logo,周围的白色圆环像波纹一样,慢慢变大,在变大过程中圆环的radius和strokeWidth逐渐变大,透明度alpha逐渐变小,好像雷达一样,向外发射信号。这是主体效果,另外还有一些随机的爱心在整个屏幕以scale和alpha结合的动画效果呈现出来,跑出来的效果个人觉得还是比较漂亮的,有兴趣的可以访问我的Github-SearchingView,checkout出来,run一下,喜欢的话希望在我的Github上给个star,谢谢废话不多说直接上图。
好,下面我就详细介绍一下该界面开发的一些思路和细节问题。首先自定义一个继承自View类的SearchingView,然后重写其onDraw方法,我们可以将整个动画分为一下三个部分来做:1. 中间的头像;2. 圆环动画;3. 随机的爱心动画。
1. 首先从最简单的说起,界面中间的用户头像,其实就是BitmapFactory.decodeResource(getResources(), R.drawable.bg)获得bitmap,然后调用canvas的drawBitmap方法画上去的,这个没什么不多解释,不太明白的可以参考下面的代码段。
private void drawMiddlePicture(Canvas canvas, int width, int height) {
if (logoBitmap != null) {
Paint paint = new Paint();
paint.setAntiAlias(true);
float left = (width - logoBitmap.getWidth()) / 2;
float top = (height - logoBitmap.getHeight()) / 2;
canvas.drawBitmap(logoBitmap, left, top, paint);
}
}</span>
2. 其次就是圆环动画,大致思路就是用一LinkedList存放若干圆环配置CircleConfig,然后在onDraw方法里面遍历这个list,通过CircleConfig里面的配置信息配置Paint画笔,然后