在Android中,给一个View加动画是很简单的,但是有的时候我们是希望在绘图的时候加动画,这个时候单独弄一个View显然是很累赘的,怎么办呢?一个典型的方法是这样的:
class MyView extends View
{
void startAnimator()
{
ValueAnimator animator = ValueAnimator.ofFloat(1f, 0f);
animator.start();
invalidate();
}
protected void onDraw(Canvas canvas)
{
if (animator.isRunning())
{
float ratio = (Float)animator.getAnimatedValue();
canvas.rotate(ratio*360);
canvas.drawBitmap(bitmap, 0, 0, null);
invalidate();
}
...
}
}
根据我理解,ValueAnimator是一个能随时间推移而改变数值的类,就相当于给数值做了一个动画;然后我们就可以根据这个数值的变化来在绘图的时候控制透明度、颜色……等等东西了。
本文参考自http://www.cnblogs.com/zhucai/p/android-graphics-animation.html