От руки Я не могу придумать лучшего способа рисования растровых изображений на этих конусах, чем ваше собственное предложение об использовании прозрачных зон.
Однако я могу помочь с вашим вторым вопросом, поскольку растягивание растровых изображений не сложно.У вас есть несколько вариантов в классе Canvas.Например:
canvas.save();
canvas.scale(xRatio, yRatio);
canvas.drawBitmap(....);
canvas.restore();
Вы также можете использовать Матрицу, используя matrix.postScale(xRatio, yRatio)
, чтобы затем сгенерировать либо большее растровое изображение и нарисовать его нормально, либо передать матрицу в вашу команду canvas.drawBitmap(....)
, чтобы сделать еемасштабировать при рисовании.
Все эти методы предполагают, что у вас есть доступ к самому холсту для рисования.Если вы используете представление, вы можете создать его подкласс и переопределить метод onDraw(Canvas canvas)
, чтобы захватить холст, прежде чем он начнет его рисовать.Если вы используете SurfaceHolder, то вы уже должны знать, как получить холст.
Редактировать: я забыл третий метод, который собирался описать.Вы можете использовать canvas.drawBitmap(bitmap, srcRect, dstRect, paint)
, чтобы масштабировать растровое полотно по размеру целевого прямоугольника.Короче говоря, есть много способов сделать это - выберите самый простой в зависимости от вашего приложения!