Как позиционировать растровое изображение, используя drawBitmap на холсте Android
Я хочу расположить два растровых изображения рядом друг с другом, используя drawBitmap()
в холсте, Android.
мой onDraw()
функция.
protected void onDraw(Canvas canvas) {
if (currentState == openedState) {
fruit1Bitmap = ApplicationServices.textureManager.bitmap[fruitId[0]];
fruit2Bitmap = ApplicationServices.textureManager.bitmap[fruitId[1]];
fruit3Bitmap = ApplicationServices.textureManager.bitmap[fruitId[2]];
src.set(0, 0, fruit1Bitmap.getWidth(), fruit1Bitmap.getHeight());
dst.set(0,0, this.getWidth()/2, this.getHeight()/2);
src1.set(0, 0, fruit2Bitmap.getWidth(), fruit2Bitmap.getHeight());
dst1.set(fruit1Bitmap.getWidth() , 0, this.getWidth()/2, this.getHeight()/2);
canvas.drawBitmap(fruit1Bitmap, src, dst, null);
canvas.drawBitmap(fruit2Bitmap, src1, dst1, null);
}
}
Это внутри класса public class Dhakkan extends ImageButton
,
Текущий результат
Я хочу, чтобы это показывало два фрукта рядом друг с другом. Итак, как мне расположить их в ImageButton
,
2 ответа
- Вы неправильно рассчитали второй прямоугольник назначения
Вместо
dst1.set(fruit1Bitmap.getWidth() , 0, this.getWidth()/2, this.getHeight()/2);
Это должно быть что-то вроде:
dst1.set(fruit1Bitmap.getWidth(),
0,
fruit1Bitmap.getWidth() + fruit2Bitmap.getWidth(),
this.getHeight()/2);
Следите за правильными координатами. Это нарисует второй фрукт рядом с первым, возможно, обрезая его, если он слишком большой. Если вместо этого вы хотите нарисовать оба плода в первой половине кнопки изображения, то исправьте координаты dst
, прямоугольник назначения первого фрукта. Вы также можете рассмотреть метод, предложенный Ким.
Как насчет чтения документов:
drawBitmap(Bitmap bitmap, float left, float top, Paint paint)
Нарисуйте указанное растровое изображение с его верхним / левым углом в (x,y), используя указанную краску, преобразованную текущей матрицей.