这两个代码片段之间的区别是什么?canvas.save/restore或canvas.drawBitmap(Bitmap,Matrix,Paint)更好吗?
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image)
Matrix m = new Matrix();
m.postRotate(angle, bmp.getWidth()/2, bmp.getHeight()/2);
m.postTranslate(x,y);
canvas.drawBitmap(bmp,m,null);
或者:
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.image)
canvas.save();
canvas.rotate(angle, bmp.getWidth()/2, bmp.getHeight()/2);
canvas.drawBitmap(bmp, x, y, null);
canvas.restore();
是否有性能差异?如果我试图达到高帧率,是否值得在选项1中缓存矩阵?
对于性能问题,正确的答案通常是“衡量它”。如果差异足够小,以至于不确定哪个更好,那么只需要更清晰的版本即可。 –