【发布时间】:2013-08-10 14:25:23
【问题描述】:
我需要一些关于矩阵运算的帮助。我想要实现的是:
- 按比例缩小
- 移动到特定位置
- 旋转一定角度(在位图的中心)
我的代码目前如下所示:
Matrix matrix = new Matrix();
matrix.preRotate(mShip.getRotation(), mShip.getX() + mShip.getCurrentBitmap().getWidth()/2f, mShip.getY() + mShip.getCurrentBitmap().getHeight()/2f);
matrix.setScale((1.0f * mShip.getWidth() / mShip.getCurrentBitmap().getWidth()), (1.0f * mShip.getHeight() / mShip.getCurrentBitmap().getHeight()));
matrix.postTranslate(mShip.getX(), mShip.getY());
mCanvas.drawBitmap(mShip.getCurrentBitmap(), matrix, mBasicPaint);
但是旋转的中心错误,我不知道如何解决这个问题 - 我已经在 SO 上环顾四周,但只发现了类似的问题,没有解决方案。 我认为我可能必须将其中一个操作应用于另一个值,因为它们是按顺序执行的,但我不知道该怎么做。
【问题讨论】:
标签: android matrix android-canvas