2015-10-07 7 views
0

Я пытаюсь добавить изображение поверх другого изображения. Верхняя часть - это размытое изображение. Для этого я использую следующий код.canvas.drawBitmap не работает должным образом

//First image as a background(full size) 
    mCanvas.drawBitmap(canvasBackImage, 0, 0, null); //draws fine 
    Rect rectangle = new Rect(0,0,200,200); 

    //Second image on top blurred 200px x 200px rectangle 
    mCanvas.drawBitmap(blurBuilder.blur(appContext, canvasBackImage, mX, mY), null, rectangle, null); 

изображения рисуется отлично с приведенным выше кодом на координате 0,0 холста, однако, если я изменить линию приведенного выше код в три к следующему, он не добавляет изображения в 100,100 координате холст.

Rect rectangle = new Rect(100,100,200,200); 

Я также пробовал с 50,50 координаты, и он работает. Поэтому, меняя его, тоже работают.

Rect rectangle = new Rect(50,50,200,200); 

Я понятия не имею, почему это не работает, как я ожидаю. Я делаю что-то неправильно?

Моя конечная цель - размыть изображение в точном месте, которое коснулся пользователь. Поэтому, если пользователь коснулся середины экрана, тогда часть изображения будет размыта.

+1

Если вы хотите, чтобы только подмножество было нарисовано, используйте 'Rect src', теперь вы передаете' null' как 'src' – pskink

+0

Извините, я не совсем понял, что – Sahil

+0

Прочтите документы Canvas, затем – pskink

ответ

0

Я переместил вышеуказанный код в методе onDraw и, похоже, работает как ожидалось сейчас.

Прежде, чем я использовал его другим способом, который вызывался вручную при нажатии кнопки.

Смежные вопросы