Android Canvas 画图
由麦可网整理,转载请注明出处
?
Android Canvas 画图 viewplaincopytoclipboardprint?
Java 代码
? ? ? ? ? ? ? ? ?? ?? ?? ?? ?? ??
@Override publicvoiddraw(Canvascan
vas){ if(mDrawable!=null){ intsc=canvas.save(); if(mAnimation!=null){ mAnimation.getTransformation( AnimationUtils.currentAnimationTimeMillis(), mTransformation); canvas.concat(mTransformation.getMatrix()); } mDrawable.draw(canvas); canvas.restoreToCount(sc); } }
canvas.save()和 canvas.restoreToCount(sc);是用来保存和回复 Canvas 的状态 (Maxtrix 等属性) , 因为我们需要修改 Canvas 的 Matrix 属性,canvas.concat 方法都会和当前 Canvas 的 Matrix 进行矩阵运算,如果我么不保存之前的 Matrix 属性,每次都会很上次矩阵运算的结果相乘, 对应本例来说,每次平移的距离会越来越大。