Как позиционировать растровое изображение, используя 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), используя указанную краску, преобразованную текущей матрицей.

Другие вопросы по тегам