@Test public void testSetConcat() { final Matrix scaleMatrix = new Matrix(); scaleMatrix.setScale(2.0f, 3.0f); final Matrix translateMatrix = new Matrix(); translateMatrix.postTranslate(5.0f, 7.0f); final Matrix matrix = new Matrix(); matrix.setConcat(translateMatrix, scaleMatrix); assertPointsEqual(mapPoint(matrix, 2.0f, 2.0f), new PointF(9.0f, 13.0f)); final Matrix rotateMatrix = new Matrix(); rotateMatrix.postRotate(90.0f); matrix.setConcat(rotateMatrix, matrix); assertPointsEqual(mapPoint(matrix, 2.0f, 2.0f), new PointF(-13.0f, 9.0f)); }
public int maxHeight() { RectF rect = new RectF(mStartBounds); Matrix projectionMatrix = new Matrix(); mMeasuredMatrixHeight.reset(); mMeasuredMatrixHeight.setConcat(projectionMatrix, MatrixHelper.ROTATE_X_0); mMeasuredMatrixHeight.mapRect(rect); return (int) rect.height(); }
private void applyTransformation(Canvas canvas, Matrix matrix) { mModelViewProjectionMatrix.reset(); mModelViewProjectionMatrix.setConcat(mProjectionMatrix, matrix); canvas.concat(mModelViewProjectionMatrix); } }
public int maxWith() { RectF rect = new RectF(mStartBounds); Matrix projectionMatrix = new Matrix(); MatrixHelper.translate(projectionMatrix, mStartBounds.left, -mStartBounds.top, 0); mMeasuredMatrixWidth.reset(); mMeasuredMatrixWidth.setConcat(projectionMatrix, MatrixHelper.ROTATE_X_90); mMeasuredMatrixWidth.mapRect(rect); return (int) rect.width(); }
private void drawText(Canvas canvas) { canvas.save(); mModelViewMatrix.set(mRotationModelViewMatrix); RectF clip = mStartBounds; if (mAlpha > 90) { mModelViewMatrix.setConcat(mModelViewMatrix, MatrixHelper.MIRROR_X); clip = mEndBounds; } applyTransformation(canvas, mModelViewMatrix); canvas.clipRect(clip); canvas.drawText(Character.toString(mChars[mCurrIndex]), 0, 1, -mTextMeasured.centerX(), -mTextMeasured.centerY(), mNumberPaint); canvas.restore(); }