読者です 読者をやめる 読者になる 読者になる

【Android】Viewに対し、Matrixで位置を動かしつつ、回転・拡大縮小する中央点を変えたい

setPaddingで動かすことも出来ますが、

そうするとMatrixと組み合わせても中央点が左上になってしまうようなので、

全てMatrixで完結させる必要がありました。

Matrix mtrx = new Matrix();

targetImageView.setScaleType(ScaleType.MATRIX);

mtrx.preTranslate(-centerX, -centerY);//拡大縮小の中央点を変えたいため、一旦動かす

mtrx.postRotate(rotation);

mtrx.postScale(scaleX, scaleY);

mtrx.postTranslate(x,y);//最終的に動かしたい地点へ移動

targetImageView.setImageMatrix(mtrx);

targetImageView.invalidate();

でOKでした。