Android получает Bitmap Rect (слева, сверху, справа, снизу) на холсте

Я рисую растровое изображение поверх холста, а затем выполняю на нем некоторое масштабирование, довольно простое, просто используя canvas.scale(int, int, pivot, pivot), а затем, после завершения масштабирования, мне нужно получить координаты растрового изображения относительно области просмотра. Есть ли какой-нибудь удобный способ сделать это, не вычисляя самостоятельно, какова начальная позиция, куда она пошла после шкалы?

На самом деле растровое изображение с масштабированием может стать больше, чем холст, поэтому мне нужен фактически размер клипа представления и растрового изображения (размер области, которая невидима и, я полагаю, меньше, чем x, y (0,0).


person Pett    schedule 19.07.2011    source источник


Ответы (1)


Я думаю об этом:

canvas.scale(scaleX, scaleY, pivotX, pivotY);    

if (scaleX >= 1){       
  objectNewX = objectOldX + (objectOldX - pivotX)*(scaleX - 1);  
}else{      
  objectNewX = objectOldX - (objectOldX - pivotX)*(1 - scaleX);  
} 

то же самое для Y и другого угла, это мне не приходит в голову, не пробовал...

person Lumis    schedule 19.07.2011