Я хотел бы использовать растровое изображение размером 4x4 (другой кирпич в стене), чтобы нарисовать линию, линия может начинаться/останавливаться в любом месте и идти в любом направлении.Создание пользовательской строки с холстом
Я пытаюсь что-то вроде следующего:
Bitmap bm = BitmapFactory.decodeResource(getResources(), R.drawable.brick);
int width = bm.getWidth();
int height = bm.getHeight();
float newWidth = Math.abs(line.startX - line.stopX);
float newHeight = Math.abs(line.startY - line.stopY);
float scaleWidth = ((float) newWidth)/width;
float scaleHeight = ((float) newHeight)/height;
Matrix matrix = new Matrix();
Matrix m = new Matrix();
// resize the bit map
matrix.postScale(scaleWidth, scaleHeight);
// recreate the new Bitmap
Bitmap resizedBitmap = Bitmap.createBitmap(bm, (int)line.startX,(int)line.startY, width, height, matrix, false);
canvas.drawBitmap(resizedBitmap, m, paint);
Я понимаю, что это изменение размера, а не рисовать .bmp последовательно. Также он выдает ошибки x + width must be <= bitmap.width()
Есть ли у кого-нибудь предложения по использованию техники здесь?
Вы хотите нарисовать последовательно с самой плотной упаковкой, которая предотвращает перекрытие или просто рисует растровое изображение в некоторой постоянной позиционной дельта? – hunt
Глядя на рисование без перекрытия ... Я могу вычислить уравнение линии, которую я хочу нарисовать 'Y = MX + C', и учитывать вертикальные случаи – avrono