用Android动画,如何让一个箭头按圆形旋转?
arrow like this:
arrow.png
最终效果图:
效果图
一、分析
1、两个关键值
箭头按圆形旋转,需要两个关键值,一个是圆形坐标,一个是对应圆形坐标位置的角度。
圆形坐标:用来实现箭头移动
坐标点的角度:用来改变箭头的方向
2、两个关键API
a、实现箭头移动和旋转可以使用:
Matrix 类 postTranslate和postRotate方法。
b、获取圆坐标,和对应的角度,可以使用:
PathMeasure类的getPosTan方法。
二、具体实现
1、先在屏幕重要画个圆:
//画布移到屏幕中心
canvas.translate((float) mWidth / 2, (float) mHeight / 2);
//画一个圆
mPath.addCircle(0, 0, 200, Path.Direction.CW);
canvas.drawPath(mPath, mPaint);
画之前需要先获取屏幕宽高(重写View的onSizeChanged):<