Как нарисовать растровое изображение в другом, но в заданный четырехугольник (не обязательно прямоугольник)?

Предположим, у меня есть 2 растровых изображения. Один - smallBitmap, а другой - bigBitmap.

Я хочу нарисовать весь smallBitmap в largeBitmap, но только в части largeBitmap, и не в прямом прямоугольнике, а вчетырехугольник вместо.

Я думаю, что эскиз лучше всего описывает то, что я имею в виду:

Примером такого сценария является наклонное изображение смартфона (например,этот или жеэтот), что вам нужно поместить скриншот в его экран.

Входные данные: smallBitmap, largeBitmap, «четырехугольные» координаты largeBitmap (куда поместить smallBitmap).

«Четырехсторонний» таблицы LargeBitmap имеет только 4 координаты, и прямоугольник не обязательно. Это может быть, например, параллелограмм или трапеция.

Мне нужно масштабировать smallBitmap в четырехугольник внутри largeBitmap, а также поддерживать масштабирование по центру, чтобы оно не искажалось

Мне также нужно знать, как обращаться с текстами одинаково, но я думаю, что это примерно то же самое решение.

Вот что я пробовал, но даже не масштабируется:

    //mBigBitmap: size is 720x1280
    //mSmallBitmap: size is 720x720
    mLeftTop = new Point(370, 358);
    mRightTop = new Point(650, 384);
    mLeftBot = new Point(375, 972);
    mRightBot = new Point(660, 942);
    Canvas canvas = new Canvas(mBigBitmap);
    final Matrix matrix = new Matrix();
    matrix.setPolyToPoly(new float[]{0, 0,
                    mBigBitmap.getWidth() - 1, 0,
                    0, mBigBitmap.getHeight() - 1,
                    mBigBitmap.getWidth() - 1, mBigBitmap.getHeight() - 1},
            0,
            new float[]{mLeftTop.x, mLeftTop.y,
                    mRightTop.x, mRightTop.y,
                    mLeftBot.x, mLeftBot.y,
                    mRightBot.x, mRightBot.y
            }
            , 0, 4);
    canvas.drawBitmap(mSmallBitmap, matrix, new Paint());

Ответы на вопрос(3)

Ваш ответ на вопрос