Исходное растровое изображение представляет собой композицию из 3 * 4 спрайтовых изображений.Этот спрайт использует 3 различных изображения в растровом изображении, и код будет циклически проходить через них (изображения 0, 1 и 2).
currentFrame = ++currentFrame % BMP_COLUMNS; <--how it works..?
currentFrame будет циклически проходить через значения 1..BMP_COLUMNS-1, то есть 0, 1, 2, 0, 1, 2, ...
int srcX = currentFrame*width; <---how it works..?
int srcY = 2*height; <-----how it works..?
Находит положение изображения для использования.Для этого конкретного спрайта есть 3 изображения (которые, вероятно, почти идентичны, возможно, это мигающий свет или что-то в этом роде).
Rect src = new Rect(srcX,srcY,srcX+width,srcY+height); <--how it works..?
Вычисляет позицию в исходном растровом изображении.
Rect dst = new Rect(x,y,x+width,y+height); <----how it works..?
Рассчитывает позицию на дисплее.