Android Canvas 画图
16lz
2021-01-23
@Override public void draw(Canvas canvas) { if (mDrawable!=null) { int sc=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属性,每次都会很上次矩阵运算的结果相乘,对应本例来说,每次平移的距离会越来越大。
更多相关文章
- Android之Bean属性通知类
- View的XML 属性大全(官方文档)
- Android中关于矩阵(Matrix)前乘后乘的一些认识
- Android ImageView 的scaleType属性
- Android属性 bulid.prop等